Function at 0x481d40
Capabilities:
Encode data using xor
Extract resource via kernel32 functions
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x80], xmm7
movaps xmmword [rsp + 0x90], xmm8
movaps xmmword [rsp + 0xa0], xmm9
movaps xmmword [rsp + 0xb0], xmm10
movaps xmmword [rsp + 0xc0], xmm11
mov dword [rsp + 0x130], r8d
mov r13, rdx
test r8d, r8d
jle 0x422635
movq xmm6, qword [0x004a9700]
movq xmm7, qword [0x004a9710]
xor r15d, r15d
mov rsi, rcx
movapd xmm11, xmm6
movapd xmm10, xmm6
movapd xmm9, xmm7
movapd xmm8, xmm6
nop word [rax + rax]
mov qword [rsi], 0
movzx ebx, byte [r13]
lea r12, [r13 + 1]
lea eax, [rbx - 0x2e]
cmp al, 0x49
ja case.0x4225d4.1
lea rdx, [0x004a7694]
movzx eax, al
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
mov rcx, r12
call sub.msvcrt.dll_strlen
lea r8, str.surrogatepass
mov rcx, r12
mov rdi, rax
mov rdx, rax
call qword [sym.imp.python39.dll_PyUnicode_DecodeUTF8]
lea r13, [r12 + rdi + 1]
mov qword [rsp + 0x50], rax
cmp bl, 0x61
je 0x422e86
nop dword [rax]
mov qword [rsi], rax
add qword [rax], 2
add rsi, 8
add r15d, 1
cmp dword [rsp + 0x130], r15d
jne 0x4225a8
movaps xmm6, xmmword [rsp + 0x70]
mov rax, r13
movaps xmm7, xmmword [rsp + 0x80]
movaps xmm8, xmmword [rsp + 0x90]
movaps xmm9, xmmword [rsp + 0xa0]
movaps xmm10, xmmword [rsp + 0xb0]
movaps xmm11, xmmword [rsp + 0xc0]
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ebp, dword [r13 + 1]
add r13, 5
cmp bl, 0x53
je 0x422e29
test ebp, ebp
jne 0x4230c1
mov rdi, qword [0x004bb1f8]
test rdi, rdi
je 0x423101
mov r12, qword [0x004bb490]
mov rax, qword [rdi + 8]
lea rcx, [0x0040d0f0]
mov rbp, qword [rax + 0x78]
mov rbx, qword [rax + 0xc8]
mov qword [rax + 0x78], rcx
lea rcx, [0x00411730]
jmp 0x42295f
movsxd rdx, dword [r13 + 1]
lea rax, [r13 + 5]
mov qword [rsi], rax
lea r13, [rax + rdx]
jmp 0x42261f
movsxd rcx, dword [r13 + 1]
add r13, 5
mov rdi, rcx
call qword [sym.imp.python39.dll_PyTuple_New]
mov rbx, rax
test edi, edi
jg 0x422d40
mov rax, qword [rbx + 8]
lea rcx, [0x004030f0]
mov r12, qword [0x004bb4b0]
mov rdi, qword [rax + 0xc8]
mov rbp, qword [rax + 0x78]
mov qword [rax + 0x78], rcx
lea rcx, [0x0040d080]
mov qword [rax + 0xc8], rcx
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_GetItem]
test rax, rax
je 0x422dc8
mov rdx, qword [rax + 8]
mov qword [rdx + 0x78], rbp
mov qword [rdx + 0xc8], rdi
mov qword [rsi], rax
jmp 0x42261b
cmp byte [r13 + 1], 5
lea rdi, [r13 + 2]
ja case.default.0x422792
movzx eax, byte [r13 + 1]
lea rdx, [0x004a77bc]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
movzx eax, byte [r13 + 1]
lea rbx, [r13 + 2]
test al, al
je 0x422d20
cmp al, 1
jne 0x4231a6
mov rcx, qword [0x004bb160]
lea rdx, [0x004a763b]
call qword [sym.imp.python39.dll_PyObject_GetAttrString]
mov qword [rsi], rax
mov r13, rbx
jmp 0x42261b
movzx eax, byte [r13 + 1]
lea rcx, [r13 + 2]
cmp al, 6
ja case.default.0x4227ef
lea rdx, [0x004a77d4]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
movsxd rcx, dword [r13 + 1]
add r13, 5
mov rdi, rcx
call qword [sym.imp.python39.dll_PyList_New]
mov rbx, rax
test edi, edi
jg 0x422d60
mov rax, qword [rbx + 8]
lea rcx, [0x00403090]
mov r12, qword [0x004bb4a8]
mov rbp, qword [rax + 0x78]
mov rdi, qword [rax + 0xc8]
mov qword [rax + 0x78], rcx
lea rcx, [0x0040d010]
jmp 0x42273c
mov rdx, r12
lea rcx, [rsp + 0x40]
mov r8d, 2
call 0x422520
mov rdx, qword [rsp + 0x48]
mov r13, rax
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x422e19
movq xmm2, rdx
movq xmm0, rax
lea r14, [rsp + 0x50]
mov rcx, qword [sym.imp.python39.dll_PyComplex_Type]
punpcklqdq xmm0, xmm2
mov rdx, r14
movaps xmmword [rsp + 0x50], xmm0
call fcn.00421630
mov qword [rsi], rax
jmp 0x42261b
lea r14, [rsp + 0x50]
mov rdx, r12
mov r8d, 2
mov rcx, r14
call 0x422520
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov r13, rax
call qword [sym.imp.python39.dll_Py_GenericAlias]
jmp 0x422618
mov rax, qword [sym.imp.python39.dll__Py_FalseStruct]
mov r13, r12
mov qword [rsi], rax
jmp 0x42261b
movsxd rcx, dword [r13 + 1]
add r13, 5
mov rbp, rcx
call qword [sym.imp.python39.dll__PyDict_NewPresized]
lea ebx, [rbp - 1]
mov rdi, rax
test ebp, ebp
jle 0x422937
mov rbp, qword [sym.imp.python39.dll_PyDict_SetItem]
lea r14, [rsp + 0x50]
mov rdx, r13
mov r8d, 2
mov rcx, r14
call 0x422520
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
mov rcx, rdi
mov r13, rax
call rbp
sub ebx, 1
jae 0x42290f
mov rax, qword [rdi + 8]
lea rcx, [0x00408540]
mov r12, qword [0x004bb4a0]
mov rbx, qword [rax + 0xc8]
mov rbp, qword [rax + 0x78]
mov qword [rax + 0x78], rcx
lea rcx, [0x00408460]
mov qword [rax + 0xc8], rcx
mov rdx, rdi
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_GetItem]
test rax, rax
je 0x422de0
mov rdx, qword [rax + 8]
mov qword [rdx + 0x78], rbp
mov qword [rdx + 0xc8], rbx
jmp 0x422618
lea rbx, [r13 + 5]
movsxd r13, dword [r13 + 1]
mov rcx, rbx
mov rdx, r13
add r13, rbx
call qword [sym.imp.python39.dll_PyByteArray_FromStringAndSize]
mov qword [rsi], rax
jmp 0x42261b
lea r14, [rsp + 0x50]
mov r8d, 3
mov rdx, r12
mov rcx, r14
call 0x422520
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov r13, rax
call qword [sym.imp.python39.dll_PySlice_New]
mov qword [rsi], rax
jmp 0x42261b
lea r14, [rsp + 0x50]
mov r8d, 3
mov rdx, r12
mov rcx, r14
call 0x422520
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov r13, rax
call fcn.00416970
mov qword [rsi], rax
jmp 0x42261b
mov edx, 1
mov rcx, r12
lea r14, [rsp + 0x50]
add r13, 2
call qword [sym.imp.python39.dll_PyUnicode_FromStringAndSize]
mov rcx, r14
mov qword [rsp + 0x50], rax
call qword [sym.imp.python39.dll_PyUnicode_InternInPlace]
mov rax, qword [rsp + 0x50]
mov qword [rsi], rax
jmp 0x42261b
lea rbx, [r13 + 5]
movsxd r13, dword [r13 + 1]
lea r8, str.surrogatepass
mov rcx, rbx
mov rdx, r13
add r13, rbx
call qword [sym.imp.python39.dll_PyUnicode_DecodeUTF8]
mov qword [rsi], rax
jmp 0x42261b
mov rax, qword [sym.imp.python39.dll__Py_TrueStruct]
mov r13, r12
mov qword [rsi], rax
jmp 0x42261b
mov rcx, qword [r13 + 1]
add r13, 9
call qword [sym.imp.python39.dll_PyLong_FromLongLong]
mov r12, qword [0x004bb4c8]
mov rbx, rax
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_GetItem]
test rax, rax
jne 0x422618
mov r8, rbx
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_SetItem]
mov rax, rbx
jmp 0x422618
mov rax, qword [sym.imp.python39.dll__Py_NoneStruct]
mov r13, r12
mov qword [rsi], rax
jmp 0x42261b
mov ecx, dword [r13 + 1]
add r13, 5
call qword [sym.imp.python39.dll_PyLong_FromLong]
mov r12, qword [0x004bb4c8]
mov rbx, rax
jmp 0x422ac0
mov rax, qword [r13 + 9]
movsd xmm0, qword [r13 + 1]
add r13, 0x11
movq xmm1, rax
call qword [sym.imp.python39.dll_PyComplex_FromDoubles]
mov qword [rsi], rax
jmp 0x42261b
mov rdi, qword [sym.imp.python39.dll_PyLong_FromLong]
xor ecx, ecx
lea rbx, [r13 + 6]
mov qword [rsp + 0x38], rdi
call rdi
mov ebp, dword [r13 + 2]
mov qword [rsp + 0x28], rbx
mov ecx, 0x40
mov r14, rax
movzx eax, byte [r13 + 1]
mov dword [rsp + 0x34], ebp
mov byte [rsp + 0x33], al
call rdi
mov r12, rax
test ebp, ebp
jle 0x4230f7
lea eax, [rbp - 1]
mov rdi, qword [sym.imp.python39.dll_PyNumber_InPlaceAdd]
lea rbp, [r13 + rax*8 + 0xe]
jmp 0x422ba5
cmp rbx, rbp
je 0x422be5
mov rdx, r12
mov rcx, r14
add rbx, 8
call qword [sym.imp.python39.dll_PyNumber_InPlaceLshift]
mov rcx, qword [rbx - 8]
mov r14, rax
call qword [sym.imp.python39.dll_PyLong_FromUnsignedLongLong]
mov rcx, r14
mov r13, rax
mov rdx, rax
call rdi
sub qword [r13], 1
mov r14, rax
jne 0x422ba0
mov rcx, r13
call qword [sym.imp.python39.dll__Py_Dealloc]
cmp rbx, rbp
jne 0x422ba5
mov eax, dword [rsp + 0x34]
mov rdi, qword [rsp + 0x28]
lea r13, [rdi + rax*8]
sub qword [r12], 1
je 0x422e00
cmp byte [rsp + 0x33], 0x2d
je 0x422e9e
mov r12, qword [0x004bb4c8]
mov rdx, r14
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_GetItem]
test rax, rax
jne 0x422618
mov r8, r14
mov rdx, r14
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_SetItem]
mov rax, r14
jmp 0x422618
movq xmm0, qword [r13 + 1]
add r13, 9
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
mov r12, qword [0x004bb4c0]
lea rcx, [0x0040cff0]
mov rbx, rax
mov rax, qword [rax + 8]
mov rbp, qword [rax + 0x78]
mov rdi, qword [rax + 0xc8]
jmp 0x42273c
mov edx, 1
mov rcx, r12
add r13, 2
call qword [sym.imp.python39.dll_PyBytes_FromStringAndSize]
mov rbx, rax
mov r12, qword [0x004bb4b8]
jmp 0x422ac0
mov rcx, r12
call sub.msvcrt.dll_strlen
mov rcx, r12
mov rbx, rax
mov rdx, rax
call qword [sym.imp.python39.dll_PyBytes_FromStringAndSize]
lea r13, [r12 + rbx + 1]
mov r12, qword [0x004bb4b8]
mov rdi, rax
mov rdx, rax
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_GetItem]
test rax, rax
jne 0x422618
mov r8, rdi
mov rdx, rdi
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_SetItem]
mov rax, rdi
jmp 0x422618
lea rdi, [r13 + 5]
movsxd r13, dword [r13 + 1]
mov rcx, rdi
mov rdx, r13
add r13, rdi
call qword [sym.imp.python39.dll_PyBytes_FromStringAndSize]
mov rbx, rax
jmp 0x422c8d
mov rcx, qword [0x004bb160]
lea rdx, str.Ellipsis
call qword [sym.imp.python39.dll_PyObject_GetAttrString]
jmp 0x4227c5
mov rdx, r13
lea rcx, [rax + 0x18]
mov r8d, edi
call 0x422520
mov r13, rax
jmp 0x422714
mov rcx, qword [rax + 0x18]
mov rdx, r13
mov r8d, edi
call 0x422520
mov r13, rax
jmp 0x422814
mov r13, r12
nop dword [rax + rax]
add r13, 1
cmp byte [r13 - 1], 0
jne 0x422d88
mov rcx, qword [0x004bb160]
mov rdx, r12
call qword [sym.imp.python39.dll_PyObject_GetAttrString]
mov qword [rsi], rax
jmp 0x42261b
mov r13, r12
nop dword [rax + rax]
add r13, 1
cmp byte [r13 - 1], 0
jne 0x422db8
jmp 0x422d93
mov r8, rbx
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_SetItem]
mov rax, rbx
jmp 0x422758
mov r8, rdi
mov rdx, rdi
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_SetItem]
mov rax, rdi
jmp 0x42297b
mov rcx, r12
call qword [sym.imp.python39.dll__Py_Dealloc]
cmp byte [rsp + 0x33], 0x2d
jne 0x422c08
jmp 0x422e9e
mov rax, qword [0x004ab6e0]
mov rax, qword [rax + 0x10]
jmp 0x422871
xor ecx, ecx
lea r12d, [rbp - 1]
call qword [sym.imp.python39.dll_PySet_New]
mov rdi, rax
test ebp, ebp
jle 0x422e7a
mov rbp, qword [sym.imp.python39.dll_PySet_Add]
lea r14, [rsp + 0x50]
mov rdx, r13
mov r8d, 1
mov rcx, r14
call 0x422520
mov rdx, qword [rsp + 0x50]
mov rcx, rdi
mov r13, rax
call rbp
mov eax, r12d
sub r12d, 1
test eax, eax
jg 0x422e48
cmp bl, 0x53
jne 0x4226a9
mov r12, qword [0x004bb498]
jmp 0x4226b0
lea r14, [rsp + 0x50]
mov rcx, r14
call qword [sym.imp.python39.dll_PyUnicode_InternInPlace]
mov rax, qword [rsp + 0x50]
jmp 0x422618
mov ecx, 0xffffffff
mov rax, qword [rsp + 0x38]
call rax
mov rcx, r14
mov r12, rax
mov rdx, rax
call qword [sym.imp.python39.dll_PyNumber_InPlaceMultiply]
sub qword [r12], 1
mov r14, rax
jne 0x422c08
mov rcx, r12
call qword [sym.imp.python39.dll__Py_Dealloc]
jmp 0x422c08
mov rbx, qword [0x004bb1f0]
test rbx, rbx
je 0x423163
nop dword [rax]
mov rax, qword [rbx + 8]
mov r13, qword [0x004bb4c0]
lea rcx, [0x0040cff0]
mov rdx, rbx
mov rbp, qword [rax + 0xc8]
mov r12, qword [rax + 0x78]
mov qword [rax + 0xc8], rcx
mov rcx, r13
call qword [sym.imp.python39.dll_PyDict_GetItem]
test rax, rax
je 0x4230e0
mov rdx, qword [rax + 8]
mov r13, rdi
mov qword [rdx + 0x78], r12
mov qword [rdx + 0xc8], rbp
mov qword [rsi], rax
jmp 0x42261b
mov rbx, qword [0x004bb1e8]
test rbx, rbx
jne 0x422ee8
pxor xmm0, xmm0
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
movsd xmm0, qword [rax + 0x10]
orpd xmm0, xmmword [0x004a9710]
mov qword [0x004bb1e8], rax
mov rbx, rax
movsd qword [rax + 0x10], xmm0
jmp 0x422ee8
mov rbx, qword [0x004bb1e0]
test rbx, rbx
jne 0x422ee8
movsd xmm0, qword [0x004a9720]
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
movsd xmm0, qword [rax + 0x10]
mov qword [0x004bb1e0], rax
mov rbx, rax
andpd xmm0, xmm8
movsd qword [rax + 0x10], xmm0
jmp 0x422ee8
mov rbx, qword [0x004bb1d8]
test rbx, rbx
jne 0x422ee8
movsd xmm0, qword [0x004a9720]
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
movsd xmm0, qword [rax + 0x10]
mov qword [0x004bb1d8], rax
mov rbx, rax
andpd xmm0, xmm10
xorpd xmm0, xmm9
movsd qword [rax + 0x10], xmm0
jmp 0x422ee8
mov rbx, qword [0x004bb1d0]
test rbx, rbx
jne 0x422ee8
movsd xmm0, qword [0x004a9728]
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
movsd xmm0, qword [rax + 0x10]
mov qword [0x004bb1d0], rax
mov rbx, rax
andpd xmm0, xmm11
movsd qword [rax + 0x10], xmm0
jmp 0x422ee8
mov rbx, qword [0x004bb1c8]
test rbx, rbx
jne 0x422ee8
movsd xmm0, qword [0x004a9728]
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
movsd xmm0, qword [rax + 0x10]
mov qword [0x004bb1c8], rax
mov rbx, rax
andpd xmm0, xmm6
xorpd xmm0, xmm7
movsd qword [rax + 0x10], xmm0
jmp 0x422ee8
mov rax, qword [sym.imp.python39.dll_PyFunction_Type]
nop dword [rax]
mov qword [rsi], rax
mov r13, rcx
jmp 0x42261b
mov rax, qword [sym.imp.python39.dll_PyGen_Type]
jmp 0x423078
mov rax, qword [sym.imp.python39.dll_PyEllipsis_Type]
jmp 0x423078
mov rax, qword [sym.imp.python39.dll__Py_NotImplementedStruct]
mov rax, qword [rax + 8]
jmp 0x423078
mov rax, qword [sym.imp.python39.dll_PyCode_Type]
jmp 0x423078
mov rax, qword [sym.imp.python39.dll__Py_NoneStruct]
mov rax, qword [rax + 8]
jmp 0x423078
mov rax, qword [sym.imp.python39.dll_PyCFunction_Type]
jmp 0x423078
xor ecx, ecx
lea r12d, [rbp - 1]
call qword [sym.imp.python39.dll_PyFrozenSet_New]
mov rdi, rax
test ebp, ebp
jg 0x422e3c
jmp 0x4226a9
mov r8, rbx
mov rdx, rbx
mov rcx, r13
call qword [sym.imp.python39.dll_PyDict_SetItem]
mov rax, rbx
jmp 0x422f21
mov r13, qword [rsp + 0x28]
jmp 0x422bf2
lea rcx, [0x004a70b7]
call qword [sym.imp.python39.dll_PyBytes_FromString]
mov rcx, qword [sym.imp.python39.dll_PyFrozenSet_Type]
mov rdx, rax
call fcn.0041fbc0
mov qword [0x004bb1f8], rax
mov rdi, rax
jmp 0x4226a9
movsx edx, bl
lea rcx, str.Missing_decoding_for__d_n
call fcn.0041cfc0
call sub.msvcrt.dll_abort
nop dword [rax]
mov edx, dword [rsp + 0x130]
lea rcx, str.Missing_values__d_n
sub edx, r15d
call fcn.0041cfc0
call sub.msvcrt.dll_abort
pxor xmm0, xmm0
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
mov qword [0x004bb1f0], rax
mov rbx, rax
jmp 0x422ee8
mov edx, 0x5a
lea rcx, str.Missing_decoding_for__d_n
call fcn.0041cfc0
call sub.msvcrt.dll_abort
movzx edx, al
lea rcx, str.Missing_anon_value_for__d_n
call fcn.0041cfc0
call sub.msvcrt.dll_abort
movzx edx, al
lea rcx, str.Missing_special_value_for__d_n
call fcn.0041cfc0
call sub.msvcrt.dll_abort
nop
nop dword [rax + rax]
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
cmp byte [0x004bb201], 0
mov r12, rcx
mov rbp, rdx
je 0x481dc8
mov ecx, 0xa
lea rdi, [0x004a953a]
mov rsi, rbp
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
jne 0x481ee0
mov rsi, qword [0x004bb118]
jmp 0x481d85
lea rsi, [rdx + rax + 4]
mov rdx, rsi
mov rcx, rbp
call sub.msvcrt.dll_strcmp
mov rcx, rsi
mov ebx, eax
call sub.msvcrt.dll_strlen
lea rdx, [rsi + rax + 1]
mov eax, dword [rdx]
test ebx, ebx
jne 0x481d80
movzx r8d, word [rdx + 4]
lea r9, [rdx + 6]
mov rcx, r12
mov rdx, r9
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp 0x422520
mov r8d, 0xa
mov edx, 3
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FindResourceA]
xor ecx, ecx
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov qword [0x004bb118], rax
mov rdx, rax
mov r9d, dword [rax]
lea rax, [rax + 4]
mov qword [0x004bb118], rax
mov eax, dword [rdx + 4]
lea rcx, [rdx + 8]
mov qword [0x004bb118], rcx
test eax, eax
je 0x481ec8
sub eax, 1
lea r8, [rdx + rax + 9]
mov eax, 0xffffffff
nop word [rax + rax]
movzx edx, byte [rcx]
xor edx, eax
mov eax, edx
and edx, 1
neg edx
shr eax, 1
and edx, 0xedb88320
xor eax, edx
mov edx, eax
and eax, 1
neg eax
shr edx, 1
and eax, 0xedb88320
xor edx, eax
mov eax, edx
and edx, 1
neg edx
shr eax, 1
and edx, 0xedb88320
xor eax, edx
mov edx, eax
and eax, 1
neg eax
shr edx, 1
and eax, 0xedb88320
xor edx, eax
mov eax, edx
and edx, 1
neg edx
shr eax, 1
and edx, 0xedb88320
xor eax, edx
mov edx, eax
and eax, 1
neg eax
shr edx, 1
and eax, 0xedb88320
xor edx, eax
mov eax, edx
shr eax, 1
and edx, 1
add rcx, 1
neg edx
and edx, 0xedb88320
xor eax, edx
mov edx, eax
and eax, 1
neg eax
shr edx, 1
and eax, 0xedb88320
xor eax, edx
cmp r8, rcx
jne 0x481e30
not eax
cmp r9d, eax
jne 0x481f7d
mov byte [0x004bb201], 1
jmp 0x481d59
cmp byte [0x004bb200], 0
jne 0x481d77
mov rbx, qword [sym.imp.python39.dll_PyDict_New]
lea rsi, [0x004ba908]
call rbx
mov qword [0x004bb4c8], rax
call rbx
mov qword [0x004bb4c0], rax
call rbx
mov qword [0x004bb4b8], rax
call rbx
mov qword [0x004bb4b0], rax
call rbx
mov qword [0x004bb4a8], rax
call rbx
mov qword [0x004bb4a0], rax
call rbx
mov qword [0x004bb498], rax
call rbx
mov rdi, qword [sym.imp.python39.dll_PyLong_FromLong]
mov rbx, 0xfffffffffffffffb
mov qword [0x004bb490], rax
nop dword [rax]
mov ecx, ebx
call rdi
add qword [rax], 1
mov qword [rsi + rbx*8], rax
add rbx, 1
cmp rbx, 0x102
jne 0x481f58
mov byte [0x004bb200], 1
jmp 0x481d77
lea rcx, str.Error__corrupted_constants_object
call sub.msvcrt.dll_puts
call sub.msvcrt.dll_abort
nop
nop
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov rsi, rcx
mov rcx, qword [rcx + 0x30]
mov rdi, rdx
mov rbp, r8
test rcx, rcx
je 0x481fb3
mov rdx, r8
call rdi
test eax, eax
jne 0x481ff0
mov rax, qword [rsi + 0xa0]
xor ebx, ebx
test rax, rax
jle 0x481fee
nop dword [rax]
mov rcx, qword [rsi + rbx*8 + 0xa8]
test rcx, rcx
je 0x481fe5
mov rdx, rbp
call rdi
test eax, eax
jne 0x481ff0
mov rax, qword [rsi + 0xa0]
add rbx, 1
cmp rbx, rax
jl 0x481fc8
xor eax, eax
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
ret