#
File: luongvd.
pyc.1shot.
seq (Python
3.13)# Disassembly generated by Pyarmor-Static-Unpack-1shot (v0.2.2), powered by pycdas
# ================================
# Pyarmor notes:
# - Pyarmor bytecode and code objects match standard Python, but special calls to Pyarmor runtime functions exist.
# - Calls on strings are not mistakes but markers, which are processed by Pyarmor at runtime.
#
# Decompilation guidance (without runtime):
# 1. Ignore encrypted bytes after `#`; use only the string before `#`.
# 2. Remove `"__pyarmor_enter_xxx__"(b"<COAddr>...")` and `"__pyarmor_leave_xxx__"(b"<COAddr>...")` (prologue/epilogue).
# 3. `"__pyarmor_assert_xxx__"(A)` is not a real assert statement.
# - If `A` is a name or readable string: replace with `A`.
# - If `A` is `(X, "Y")`: replace with `X.Y`.
# - If `A` is `(X, "Y", Z)`: replace with `X.Y = Z`.
# - Otherwise: choose the most reasonable replacement.
# 4. `"__pyarmor_bcc_xxx__"(...)` indicates native code; function body is not available. Add a comment.
# ================================
[Code]
Arg Count: 0
Pos Only Arg Count: 0
KW Only Arg Count: 0
Flags: 0x20000000 (CO_PYARMOR_OBFUSCATED)
[Names]
'__assert_armored__'
'transform_char'
'calculate_checksum'
'generate_key'
'verify_key'
'main'
'__name__'
[Locals+Names]
[Constants]
'__pyarmor_assert_57796__'
'__pyarmor_enter_57797__'
b'<COAddr>\x01\x00\x00\x1aL\x00\x00\x00\x00\x00\x00\x00'
[Code]
Qualified
Name: transform_char
Arg Count: 3
Pos Only Arg Count: 0
KW Only Arg Count: 0
Flags: 0x20000003 (CO_OPTIMIZED | CO_NEWLOCALS | CO_PYARMOR_OBFUSCATED)
[Names]
'ord'
[Locals+Names]
'c'
'position'
'seed'
'__assert_armored__'
'_var_var_0'
'_var_var_1'
[Constants]
None
'__pyarmor_assert_57799__'
'__pyarmor_enter_57800__'
b'<COAddr>\x01\x00\x00\x1aN\x00\x00\x00\x00\x00\x00\x00'
7
26
65
'__pyarmor_exit_57801__'
[Disassembly]
0 NOP
2 NOP
4 LOAD_CONST 2: '__pyarmor_enter_57800__'
6 PUSH_NULL
8 LOAD_CONST 3: b'<COAddr>\x01\x00\x00\x1aN\x00\x00\x00\x00\x00\x00\x00'
10 BUILD_TUPLE 1
12 CALL_FUNCTION_EX 0
14 POP_TOP
16 RESUME 0
18 LOAD_CONST 1: '__pyarmor_assert_57799__'
20 STORE_FAST 3: __assert_armored__
22 NOP
24 NOP
26 NOP
28 LOAD_GLOBAL 1: NULL + ord
38 LOAD_FAST 0: c
40 CALL 1
48 STORE_FAST 4: _var_var_0
50 LOAD_FAST_LOAD_FAST 65: _var_var_0, position
52 LOAD_CONST 4: 7
54 BINARY_OP 5 (*)
58 LOAD_FAST 2: seed
60 BINARY_OP 0 (+)
64 BINARY_OP 12 (^)
68 STORE_FAST 5: _var_var_1
70 LOAD_FAST 5: _var_var_1
72 LOAD_CONST 5: 26
74 BINARY_OP 6 (%)
78 LOAD_CONST 6: 65
80 BINARY_OP 0 (+)
84 NOP
86 NOP
88 NOP
90 JUMP_FORWARD 20 (to 132)
92 CALL 1
100 POP_TOP
102 RETURN_VALUE
104 PUSH_EXC_INFO
106 LOAD_CONST 7: '__pyarmor_exit_57801__'
108 NOP
110 PUSH_NULL
112 LOAD_CONST 3: b'<COAddr>\x01\x00\x00\x1aN\x00\x00\x00\x00\x00\x00\x00'
114 CALL 1
122 POP_TOP
124 RERAISE 0
126 COPY 3
128 POP_EXCEPT
130 RERAISE 1
132 LOAD_CONST 7: '__pyarmor_exit_57801__'
134 PUSH_NULL
136 LOAD_CONST 3: b'<COAddr>\x01\x00\x00\x1aN\x00\x00\x00\x00\x00\x00\x00'
138 BUILD_TUPLE 1
140 CALL_FUNCTION_EX 0
142 POP_TOP
144 RETURN_VALUE
28 to 84 -> 104 [0]
104 to 126 -> 126 [1] lasti
[Code]
Qualified
Name: calculate_checksum
Arg Count: 1
Pos Only Arg Count: 0
KW Only Arg Count: 0
Flags: 0x20000003 (CO_OPTIMIZED | CO_NEWLOCALS | CO_PYARMOR_OBFUSCATED)
[Names]
'enumerate'
[Locals+Names]
'data'
'__assert_armored__'
'_var_var_2'
'_var_var_3'
'_var_var_4'
[Constants]
None
'__pyarmor_assert_57802__'
'__pyarmor_enter_57803__'
b'<COAddr>\x03\x00\x00\x1az\x00\x00\x00\x00\x00\x00\x00'
4919
3
13
65535
1
'__pyarmor_exit_57804__'
[Disassembly]
0 NOP
2 NOP
4 LOAD_CONST 2: '__pyarmor_enter_57803__'
6 PUSH_NULL
8 LOAD_CONST 3: b'<COAddr>\x03\x00\x00\x1az\x00\x00\x00\x00\x00\x00\x00'
10 BUILD_TUPLE 1
12 CALL_FUNCTION_EX 0
14 POP_TOP
16 RESUME 0
18 LOAD_CONST 1: '__pyarmor_assert_57802__'
20 STORE_FAST 1: __assert_armored__
22 NOP
24 NOP
26 NOP
28 LOAD_CONST 4: 4919
30 STORE_FAST 2: _var_var_2
32 LOAD_GLOBAL 1: NULL + enumerate
42 LOAD_FAST 0: data
44 CALL 1
52 GET_ITER
54 FOR_ITER 29 (to 114)
58 UNPACK_SEQUENCE 2
62 STORE_FAST_STORE_FAST 52: _var_var_3, _var_var_4
64 LOAD_FAST 2: _var_var_2
66 LOAD_CONST 5: 3
68 BINARY_OP 3 (<<)
72 LOAD_FAST 2: _var_var_2
74 LOAD_CONST 6: 13
76 BINARY_OP 9 (>>)
80 BINARY_OP 7 (|)
84 LOAD_CONST 7: 65535
86 BINARY_OP 1 (&)
90 STORE_FAST 2: _var_var_2
92 LOAD_FAST_LOAD_FAST 36: _var_var_2, _var_var_4
94 LOAD_FAST 3: _var_var_3
96 LOAD_CONST 8: 1
98 BINARY_OP 0 (+)
102 BINARY_OP 5 (*)
106 BINARY_OP 25 (^=)
110 STORE_FAST 2: _var_var_2
112 JUMP_BACKWARD 31 (to 52)
116 END_FOR
118 POP_TOP
120 LOAD_FAST 2: _var_var_2
122 LOAD_CONST 7: 65535
124 BINARY_OP 1 (&)
128 NOP
130 NOP
132 NOP
134 JUMP_FORWARD 20 (to 176)
136 CALL 1
144 POP_TOP
146 RETURN_VALUE
148 PUSH_EXC_INFO
150 LOAD_CONST 9: '__pyarmor_exit_57804__'
152 NOP
154 PUSH_NULL
156 LOAD_CONST 3: b'<COAddr>\x03\x00\x00\x1az\x00\x00\x00\x00\x00\x00\x00'
158 CALL 1
166 POP_TOP
168 RERAISE 0
170 COPY 3
172 POP_EXCEPT
174 RERAISE 1
176 LOAD_CONST 9: '__pyarmor_exit_57804__'
178 PUSH_NULL
180 LOAD_CONST 3: b'<COAddr>\x03\x00\x00\x1az\x00\x00\x00\x00\x00\x00\x00'
182 BUILD_TUPLE 1
184 CALL_FUNCTION_EX 0
186 POP_TOP
188 RETURN_VALUE
28 to 128 -> 148 [0]
148 to 170 -> 170 [1] lasti
[Code]
Qualified
Name: generate_key
Arg Count: 1
Pos Only Arg Count: 0
KW Only Arg Count: 0
Flags: 0x20000003 (CO_OPTIMIZED | CO_NEWLOCALS | CO_PYARMOR_OBFUSCATED)
[Names]
'len'
'enumerate'
'upper'
'isalnum'
'append'
'transform_char'
'calculate_checksum'
'ord'
[Locals+Names]
'username'
'__assert_armored__'
'_var_var_5'
'_var_var_1'
'_var_var_3'
'_var_var_6'
'_var_var_7'
'_var_var_4'
'_var_var_8'
'_var_var_9'
'_var_var_10'
'_var_var_11'
'_var_var_12'
[Constants]
None
'__pyarmor_assert_57805__'
'__pyarmor_enter_57806__'
b'<COAddr>\x03\x00\x00\x1a&\x02\x00\x00\x00\x00\x00\x00'
3
'__pyarmor_exit_57807__'
13
0
4
31
65535
57005
48879
'04X'
'-'
[Disassembly]
0 NOP
2 NOP
4 LOAD_CONST 2: '__pyarmor_enter_57806__'
6 PUSH_NULL
8 LOAD_CONST 3: b'<COAddr>\x03\x00\x00\x1a&\x02\x00\x00\x00\x00\x00\x00'
10 BUILD_TUPLE 1
12 CALL_FUNCTION_EX 0
14 POP_TOP
16 RESUME 0
18 LOAD_CONST 1: '__pyarmor_assert_57805__'
20 STORE_FAST 1: __assert_armored__
22 NOP
24 NOP
26 NOP
28 LOAD_GLOBAL 1: NULL + len
38 LOAD_FAST 0: username
40 CALL 1
48 LOAD_CONST 4: 3
50 COMPARE_OP 18 (<)
54 POP_JUMP_IF_FALSE 11 (to 78)
58 NOP
60 LOAD_CONST 0: None
62 NOP
64 NOP
66 JUMP_FORWARD 267 (to 604)
76 POP_TOP
78 RETURN_CONST 0: None
80 LOAD_GLOBAL 1: NULL + len
90 LOAD_FAST 0: username
92 CALL 1
100 LOAD_CONST 6: 13
102 BINARY_OP 5 (*)
106 STORE_FAST 2: _var_var_5
108 BUILD_LIST 0
110 STORE_FAST 3: _var_var_1
112 LOAD_GLOBAL 3: NULL + enumerate
122 LOAD_FAST 0: username
124 LOAD_ATTR 5: upper
144 CALL 0
152 CALL 1
160 GET_ITER
162 FOR_ITER 55 (to 274)
166 UNPACK_SEQUENCE 2
170 STORE_FAST_STORE_FAST 69: _var_var_3, _var_var_6
172 LOAD_FAST 5: _var_var_6
174 LOAD_ATTR 7: isalnum
194 CALL 0
202 TO_BOOL
210 POP_JUMP_IF_TRUE 2 (to 216)
214 JUMP_BACKWARD 28 (to 160)
218 LOAD_FAST 3: _var_var_1
220 LOAD_ATTR 9: append
240 LOAD_GLOBAL 11: NULL + transform_char
250 LOAD_FAST_LOAD_FAST 84: _var_var_6, _var_var_3
252 LOAD_FAST 2: _var_var_5
254 CALL 3
262 CALL 1
270 POP_TOP
272 JUMP_BACKWARD 57 (to 160)
276 END_FOR
278 POP_TOP
280 LOAD_CONST 7: 0
282 STORE_FAST 6: _var_var_7
284 LOAD_GLOBAL 3: NULL + enumerate
294 LOAD_GLOBAL 1: NULL + len
304 LOAD_FAST 3: _var_var_1
306 CALL 1
314 LOAD_CONST 8: 4
316 COMPARE_OP 188 (>=)
320 POP_JUMP_IF_FALSE 5 (to 332)
324 LOAD_FAST 3: _var_var_1
326 LOAD_CONST 0: None
328 LOAD_CONST 8: 4
330 BINARY_SLICE
332 JUMP_FORWARD 1 (to 336)
334 LOAD_FAST 3: _var_var_1
336 CALL 1
344 GET_ITER
346 FOR_ITER 16 (to 380)
350 UNPACK_SEQUENCE 2
354 STORE_FAST_STORE_FAST 71: _var_var_3, _var_var_4
356 LOAD_FAST 6: _var_var_7
358 LOAD_CONST 9: 31
360 BINARY_OP 5 (*)
364 LOAD_FAST 7: _var_var_4
366 BINARY_OP 0 (+)
370 LOAD_CONST 10: 65535
372 BINARY_OP 1 (&)
376 STORE_FAST 6: _var_var_7
378 JUMP_BACKWARD 18 (to 344)
382 END_FOR
384 POP_TOP
386 LOAD_GLOBAL 13: NULL + calculate_checksum
396 LOAD_FAST 0: username
398 GET_ITER
400 LOAD_FAST_AND_CLEAR 5: _var_var_6
402 SWAP 2
404 BUILD_LIST 0
406 SWAP 2
408 GET_ITER
410 FOR_ITER 14 (to 440)
414 STORE_FAST 5: _var_var_6
416 LOAD_GLOBAL 15: NULL + ord
426 LOAD_FAST 5: _var_var_6
428 CALL 1
436 LIST_APPEND 2
438 JUMP_BACKWARD 16 (to 408)
442 END_FOR
444 POP_TOP
446 SWAP 2
448 STORE_FAST 5: _var_var_6
450 CALL 1
458 STORE_FAST 8: _var_var_8
460 LOAD_CONST 11: 57005
462 STORE_FAST 9: _var_var_9
464 LOAD_FAST_LOAD_FAST 104: _var_var_7, _var_var_8
466 BINARY_OP 12 (^)
470 LOAD_FAST 9: _var_var_9
472 BINARY_OP 12 (^)
476 LOAD_CONST 10: 65535
478 BINARY_OP 1 (&)
482 STORE_FAST 10: _var_var_10
484 LOAD_FAST_LOAD_FAST 104: _var_var_7, _var_var_8
486 BINARY_OP 0 (+)
490 LOAD_FAST 10: _var_var_10
492 BINARY_OP 0 (+)
496 LOAD_CONST 12: 48879
498 BINARY_OP 12 (^)
502 LOAD_CONST 10: 65535
504 BINARY_OP 1 (&)
508 STORE_FAST 11: _var_var_11
510 LOAD_FAST 6: _var_var_7
512 LOAD_CONST 13: '04X'
514 FORMAT_WITH_SPEC
516 LOAD_CONST 14: '-'
518 LOAD_FAST 8: _var_var_8
520 LOAD_CONST 13: '04X'
522 FORMAT_WITH_SPEC
524 LOAD_CONST 14: '-'
526 LOAD_FAST 10: _var_var_10
528 LOAD_CONST 13: '04X'
530 FORMAT_WITH_SPEC
532 LOAD_CONST 14: '-'
534 LOAD_FAST 11: _var_var_11
536 LOAD_CONST 13: '04X'
538 FORMAT_WITH_SPEC
540 BUILD_STRING 7
542 STORE_FAST 12: _var_var_12
544 LOAD_FAST 12: _var_var_12
546 NOP
548 NOP
550 NOP
552 JUMP_FORWARD 25 (to 604)
554 CALL 1
562 POP_TOP
564 RETURN_VALUE
566 SWAP 2
568 POP_TOP
570 SWAP 2
572 STORE_FAST 5: _var_var_6
574 RERAISE 0
576 PUSH_EXC_INFO
578 LOAD_CONST 5: '__pyarmor_exit_57807__'
580 NOP
582 PUSH_NULL
584 LOAD_CONST 3: b'<COAddr>\x03\x00\x00\x1a&\x02\x00\x00\x00\x00\x00\x00'
586 CALL 1
594 POP_TOP
596 RERAISE 0
598 COPY 3
600 POP_EXCEPT
602 RERAISE 1
604 LOAD_CONST 5: '__pyarmor_exit_57807__'
606 PUSH_NULL
608 LOAD_CONST 3: b'<COAddr>\x03\x00\x00\x1a&\x02\x00\x00\x00\x00\x00\x00'
610 BUILD_TUPLE 1
612 CALL_FUNCTION_EX 0
614 POP_TOP
616 RETURN_VALUE
28 to 58 -> 576 [0]
80 to 210 -> 576 [0]
218 to 404 -> 576 [0]
404 to 446 -> 566 [4]
446 to 546 -> 576 [0]
566 to 576 -> 576 [0]
576 to 598 -> 598 [1] lasti
[Code]
Qualified
Name: verify_key
Arg Count: 2
Pos Only Arg Count: 0
KW Only Arg Count: 0
Flags: 0x20000003 (CO_OPTIMIZED | CO_NEWLOCALS | CO_PYARMOR_OBFUSCATED)
[Names]
'generate_key'
'upper'
[Locals+Names]
'username'
'key'
'__assert_armored__'
'_var_var_13'
[Constants]
None
'__pyarmor_assert_57808__'
'__pyarmor_enter_57809__'
b'<COAddr>\x01\x00\x00\x1a\x88\x00\x00\x00\x00\x00\x00\x00'
'__pyarmor_exit_57810__'
False
[Disassembly]
0 NOP
2 NOP
4 LOAD_CONST 2: '__pyarmor_enter_57809__'
6 PUSH_NULL
8 LOAD_CONST 3: b'<COAddr>\x01\x00\x00\x1a\x88\x00\x00\x00\x00\x00\x00\x00'
10 BUILD_TUPLE 1
12 CALL_FUNCTION_EX 0
14 POP_TOP
16 RESUME 0
18 LOAD_CONST 1: '__pyarmor_assert_57808__'
20 STORE_FAST 2: __assert_armored__
22 NOP
24 NOP
26 NOP
28 LOAD_GLOBAL 1: NULL + generate_key
38 LOAD_FAST 0: username
40 CALL 1
48 STORE_FAST 3: _var_var_13
50 LOAD_FAST 3: _var_var_13
52 POP_JUMP_IF_NOT_NONE 11 (to 76)
56 NOP
58 LOAD_CONST 5: False
60 NOP
62 NOP
64 NOP
66 JUMP_FORWARD 61 (to 190)
74 POP_TOP
76 RETURN_CONST 5: False
78 LOAD_FAST 1: key
80 LOAD_ATTR 3: upper
100 CALL 0
108 LOAD_FAST 3: _var_var_13
110 LOAD_ATTR 3: upper
130 CALL 0
138 COMPARE_OP 72 (==)
142 NOP
144 NOP
146 NOP
148 JUMP_FORWARD 20 (to 190)
150 CALL 1
158 POP_TOP
160 RETURN_VALUE
162 PUSH_EXC_INFO
164 LOAD_CONST 4: '__pyarmor_exit_57810__'
166 NOP
168 PUSH_NULL
170 LOAD_CONST 3: b'<COAddr>\x01\x00\x00\x1a\x88\x00\x00\x00\x00\x00\x00\x00'
172 CALL 1
180 POP_TOP
182 RERAISE 0
184 COPY 3
186 POP_EXCEPT
188 RERAISE 1
190 LOAD_CONST 4: '__pyarmor_exit_57810__'
192 PUSH_NULL
194 LOAD_CONST 3: b'<COAddr>\x01\x00\x00\x1a\x88\x00\x00\x00\x00\x00\x00\x00'
196 BUILD_TUPLE 1
198 CALL_FUNCTION_EX 0
200 POP_TOP
202 RETURN_VALUE
28 to 56 -> 162 [0]
78 to 142 -> 162 [0]
162 to 184 -> 184 [1] lasti
[Code]
Arg Count: 0
Pos Only Arg Count: 0
KW Only Arg Count: 0
Flags: 0x20000003 (CO_OPTIMIZED | CO_NEWLOCALS | CO_PYARMOR_OBFUSCATED)
[Names]
'print'
'input'
'strip'
'len'
'verify_key'
[Locals+Names]
'__assert_armored__'
'_var_var_14'
'_var_var_15'
'_var_var_12'
[Constants]
None
'__pyarmor_assert_57811__'
'__pyarmor_enter_57812__'
b'<COAddr>\x01\x00\x00\x1a<\x02\x00\x00\x00\x00\x00\x00'
'Nhiệm vụ: Tìm key hợp lệ cho username của bạn'
' - Key có format: XXXX-XXXX-XXXX-XXXX'
'------------------------------------------------------------'
'\n[1] Nhập username và key để kiểm tra'
'[2] Thoát'
'\nLựa chọn: '
'1'
'Nhập username: '
3
'❌ Username phải có ít nhất 3 ký tự!'
'Nhập key (format XXXX-XXXX-XXXX-XXXX): '
'CHÚC MỪNG! BẠN ĐÃ GIẢI ĐƯỢC THỬ THÁCH!'
'Username: '
'Key: '
'============================================================'
'❌ Key không hợp lệ! Hãy thử lại.'
'2'
'\nHẹn gặp lại!'
'Lựa chọn không hợp lệ!'
'__pyarmor_exit_57813__'
[Disassembly]
0 NOP
2 NOP
4 LOAD_CONST 2: '__pyarmor_enter_57812__'
6 PUSH_NULL
8 LOAD_CONST 3: b'<COAddr>\x01\x00\x00\x1a<\x02\x00\x00\x00\x00\x00\x00'
10 BUILD_TUPLE 1
12 CALL_FUNCTION_EX 0
14 POP_TOP
16 RESUME 0
18 LOAD_CONST 1: '__pyarmor_assert_57811__'
20 STORE_FAST 0: __assert_armored__
22 NOP
24 NOP
26 NOP
28 LOAD_GLOBAL 1: NULL + print
38 LOAD_CONST 4: 'Nhiệm vụ: Tìm key hợp lệ cho username của bạn'
40 CALL 1
48 POP_TOP
50 LOAD_GLOBAL 1: NULL + print
60 LOAD_CONST 5: ' - Key có format: XXXX-XXXX-XXXX-XXXX'
62 CALL 1
70 POP_TOP
72 LOAD_GLOBAL 1: NULL + print
82 LOAD_CONST 6: '------------------------------------------------------------'
84 CALL 1
92 POP_TOP
94 NOP
96 LOAD_GLOBAL 1: NULL + print
106 LOAD_CONST 7: '\n[1] Nhập username và key để kiểm tra'
108 CALL 1
116 POP_TOP
118 LOAD_GLOBAL 1: NULL + print
128 LOAD_CONST 8: '[2] Thoát'
130 CALL 1
138 POP_TOP
140 LOAD_GLOBAL 3: NULL + input
150 LOAD_CONST 9: '\nLựa chọn: '
152 CALL 1
160 LOAD_ATTR 5: strip
180 CALL 0
188 STORE_FAST 1: _var_var_14
190 LOAD_FAST 1: _var_var_14
192 LOAD_CONST 10: '1'
194 COMPARE_OP 88 (==)
198 POP_JUMP_IF_FALSE 157 (to 514)
202 LOAD_GLOBAL 3: NULL + input
212 LOAD_CONST 11: 'Nhập username: '
214 CALL 1
222 LOAD_ATTR 5: strip
242 CALL 0
250 STORE_FAST 2: _var_var_15
252 LOAD_GLOBAL 7: NULL + len
262 LOAD_FAST 2: _var_var_15
264 CALL 1
272 LOAD_CONST 12: 3
274 COMPARE_OP 18 (<)
278 POP_JUMP_IF_FALSE 13 (to 306)
282 LOAD_GLOBAL 1: NULL + print
292 LOAD_CONST 13: '❌ Username phải có ít nhất 3 ký tự!'
294 CALL 1
302 POP_TOP
304 JUMP_BACKWARD 107 (to 92)
308 LOAD_GLOBAL 3: NULL + input
318 LOAD_CONST 14: 'Nhập key (format XXXX-XXXX-XXXX-XXXX): '
320 CALL 1
328 LOAD_ATTR 5: strip
348 CALL 0
356 STORE_FAST 3: _var_var_12
358 LOAD_GLOBAL 9: NULL + verify_key
368 LOAD_FAST_LOAD_FAST 35: _var_var_15, _var_var_12
370 CALL 2
378 TO_BOOL
386 POP_JUMP_IF_FALSE 51 (to 490)
390 LOAD_GLOBAL 1: NULL + print
400 LOAD_CONST 15: 'CHÚC MỪNG! BẠN ĐÃ GIẢI ĐƯỢC THỬ THÁCH!'
402 CALL 1
410 POP_TOP
412 LOAD_GLOBAL 1: NULL + print
422 LOAD_CONST 16: 'Username: '
424 LOAD_FAST 2: _var_var_15
426 FORMAT_SIMPLE
428 BUILD_STRING 2
430 CALL 1
438 POP_TOP
440 LOAD_GLOBAL 1: NULL + print
450 LOAD_CONST 17: 'Key: '
452 LOAD_FAST 3: _var_var_12
454 FORMAT_SIMPLE
456 BUILD_STRING 2
458 CALL 1
466 POP_TOP
468 LOAD_GLOBAL 1: NULL + print
478 LOAD_CONST 18: '============================================================'
480 CALL 1
488 POP_TOP
490 JUMP_FORWARD 41 (to 574)
492 LOAD_GLOBAL 1: NULL + print
502 LOAD_CONST 19: '❌ Key không hợp lệ! Hãy thử lại.'
504 CALL 1
512 POP_TOP
514 JUMP_FORWARD 29 (to 574)
516 LOAD_FAST 1: _var_var_14
518 LOAD_CONST 20: '2'
520 COMPARE_OP 88 (==)
524 POP_JUMP_IF_FALSE 12 (to 550)
528 LOAD_GLOBAL 1: NULL + print
538 LOAD_CONST 21: '\nHẹn gặp lại!'
540 CALL 1
548 POP_TOP
550 JUMP_FORWARD 13 (to 578)
552 LOAD_GLOBAL 1: NULL + print
562 LOAD_CONST 22: 'Lựa chọn không hợp lệ!'
564 CALL 1
572 POP_TOP
574 JUMP_BACKWARD 241 (to 94)
578 LOAD_CONST 0: None
580 NOP
582 NOP
584 NOP
586 JUMP_FORWARD 19 (to 626)
594 POP_TOP
596 RETURN_CONST 0: None
598 PUSH_EXC_INFO
600 LOAD_CONST 23: '__pyarmor_exit_57813__'
602 NOP
604 PUSH_NULL
606 LOAD_CONST 3: b'<COAddr>\x01\x00\x00\x1a<\x02\x00\x00\x00\x00\x00\x00'
608 CALL 1
616 POP_TOP
618 RERAISE 0
620 COPY 3
622 POP_EXCEPT
624 RERAISE 1
626 LOAD_CONST 23: '__pyarmor_exit_57813__'
628 PUSH_NULL
630 LOAD_CONST 3: b'<COAddr>\x01\x00\x00\x1a<\x02\x00\x00\x00\x00\x00\x00'
632 BUILD_TUPLE 1
634 CALL_FUNCTION_EX 0
636 POP_TOP
638 RETURN_VALUE
28 to 578 -> 598 [0]
598 to 620 -> 620 [1] lasti
'__main__'
'__pyarmor_exit_57798__'
None
[Disassembly]
0 NOP
2 NOP
4 LOAD_CONST 1: '__pyarmor_enter_57797__'
6 PUSH_NULL
8 LOAD_CONST 2: b'<COAddr>\x01\x00\x00\x1aL\x00\x00\x00\x00\x00\x00\x00'
10 BUILD_TUPLE 1
12 CALL_FUNCTION_EX 0
14 POP_TOP
16 RESUME 0
18 LOAD_CONST 0: '__pyarmor_assert_57796__'
20 STORE_NAME 0: __assert_armored__
22 NOP
24 NOP
26 LOAD_CONST 3: <CODE> transform_char
28 MAKE_FUNCTION
30 STORE_NAME 1: transform_char
32 LOAD_CONST 4: <CODE> calculate_checksum
34 MAKE_FUNCTION
36 STORE_NAME 2: calculate_checksum
38 LOAD_CONST 5: <CODE> generate_key
40 MAKE_FUNCTION
42 STORE_NAME 3: generate_key
44 LOAD_CONST 6: <CODE> verify_key
46 MAKE_FUNCTION
48 STORE_NAME 4: verify_key
50 LOAD_CONST 7: <CODE> main
52 MAKE_FUNCTION
54 STORE_NAME 5: main
56 LOAD_NAME 6: __name__
58 LOAD_CONST 8: '__main__'
60 COMPARE_OP 88 (==)
64 POP_JUMP_IF_FALSE 7 (to 80)
68 LOAD_NAME 5: main
70 PUSH_NULL
72 CALL 0
80 POP_TOP
82 LOAD_CONST 10: None
84 NOP
86 NOP
88 NOP
90 JUMP_FORWARD 19 (to 130)
98 POP_TOP
100 RETURN_CONST 10: None
102 PUSH_EXC_INFO
104 LOAD_CONST 9: '__pyarmor_exit_57798__'
106 NOP
108 PUSH_NULL
110 LOAD_CONST 2: b'<COAddr>\x01\x00\x00\x1aL\x00\x00\x00\x00\x00\x00\x00'
112 CALL 1
120 POP_TOP
122 RERAISE 0
124 COPY 3
126 POP_EXCEPT
128 RERAISE 1
130 LOAD_CONST 9: '__pyarmor_exit_57798__'
132 PUSH_NULL
134 LOAD_CONST 2: b'<COAddr>\x01\x00\x00\x1aL\x00\x00\x00\x00\x00\x00\x00'
136 BUILD_TUPLE 1
138 CALL_FUNCTION_EX 0
140 POP_TOP
142 RETURN_VALUE
26 to 82 -> 102 [0]
102 to 124 -> 124 [1] lasti