Function at 0x4f2cc0
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 0x4935b5
movq xmm6, qword [0x0051a960]
movq xmm7, qword [0x0051a970]
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.0x493554.1
lea rdx, [0x005188f4]
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 0x493e06
nop dword [rax]
mov qword [rsi], rax
add qword [rax], 2
add rsi, 8
add r15d, 1
cmp dword [rsp + 0x130], r15d
jne 0x493528
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 0x493da9
test ebp, ebp
jne 0x494041
mov rdi, qword [0x0052dd18]
test rdi, rdi
je 0x494081
mov r12, qword [0x0052dfb0]
mov rax, qword [rdi + 8]
lea rcx, [0x0047e070]
mov rbp, qword [rax + 0x78]
mov rbx, qword [rax + 0xc8]
mov qword [rax + 0x78], rcx
lea rcx, [0x004826b0]
jmp 0x4938df
movsxd rdx, dword [r13 + 1]
lea rax, [r13 + 5]
mov qword [rsi], rax
lea r13, [rax + rdx]
jmp 0x49359f
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 0x493cc0
mov rax, qword [rbx + 8]
lea rcx, [0x00474070]
mov r12, qword [0x0052dfd0]
mov rdi, qword [rax + 0xc8]
mov rbp, qword [rax + 0x78]
mov qword [rax + 0x78], rcx
lea rcx, [0x0047e000]
mov qword [rax + 0xc8], rcx
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_GetItem]
test rax, rax
je 0x493d48
mov rdx, qword [rax + 8]
mov qword [rdx + 0x78], rbp
mov qword [rdx + 0xc8], rdi
mov qword [rsi], rax
jmp 0x49359b
cmp byte [r13 + 1], 5
lea rdi, [r13 + 2]
ja case.default.0x493712
movzx eax, byte [r13 + 1]
lea rdx, [0x00518a1c]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
movzx eax, byte [r13 + 1]
lea rbx, [r13 + 2]
test al, al
je 0x493ca0
cmp al, 1
jne 0x494126
mov rcx, qword [0x0052dc80]
lea rdx, [0x0051889b]
call qword [sym.imp.python39.dll_PyObject_GetAttrString]
mov qword [rsi], rax
mov r13, rbx
jmp 0x49359b
movzx eax, byte [r13 + 1]
lea rcx, [r13 + 2]
cmp al, 6
ja case.default.0x49376f
lea rdx, [0x00518a34]
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 0x493ce0
mov rax, qword [rbx + 8]
lea rcx, [0x00474010]
mov r12, qword [0x0052dfc8]
mov rbp, qword [rax + 0x78]
mov rdi, qword [rax + 0xc8]
mov qword [rax + 0x78], rcx
lea rcx, [0x0047df90]
jmp 0x4936bc
mov rdx, r12
lea rcx, [rsp + 0x40]
mov r8d, 2
call 0x4934a0
mov rdx, qword [rsp + 0x48]
mov r13, rax
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x493d99
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.004925b0
mov qword [rsi], rax
jmp 0x49359b
lea r14, [rsp + 0x50]
mov rdx, r12
mov r8d, 2
mov rcx, r14
call 0x4934a0
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov r13, rax
call qword [sym.imp.python39.dll_Py_GenericAlias]
jmp 0x493598
mov rax, qword [sym.imp.python39.dll__Py_FalseStruct]
mov r13, r12
mov qword [rsi], rax
jmp 0x49359b
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 0x4938b7
mov rbp, qword [sym.imp.python39.dll_PyDict_SetItem]
lea r14, [rsp + 0x50]
mov rdx, r13
mov r8d, 2
mov rcx, r14
call 0x4934a0
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
mov rcx, rdi
mov r13, rax
call rbp
sub ebx, 1
jae 0x49388f
mov rax, qword [rdi + 8]
lea rcx, [0x004794c0]
mov r12, qword [0x0052dfc0]
mov rbx, qword [rax + 0xc8]
mov rbp, qword [rax + 0x78]
mov qword [rax + 0x78], rcx
lea rcx, [0x004793e0]
mov qword [rax + 0xc8], rcx
mov rdx, rdi
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_GetItem]
test rax, rax
je 0x493d60
mov rdx, qword [rax + 8]
mov qword [rdx + 0x78], rbp
mov qword [rdx + 0xc8], rbx
jmp 0x493598
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 0x49359b
lea r14, [rsp + 0x50]
mov r8d, 3
mov rdx, r12
mov rcx, r14
call 0x4934a0
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 0x49359b
lea r14, [rsp + 0x50]
mov r8d, 3
mov rdx, r12
mov rcx, r14
call 0x4934a0
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov r13, rax
call fcn.004878f0
mov qword [rsi], rax
jmp 0x49359b
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 0x49359b
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 0x49359b
mov rax, qword [sym.imp.python39.dll__Py_TrueStruct]
mov r13, r12
mov qword [rsi], rax
jmp 0x49359b
mov rcx, qword [r13 + 1]
add r13, 9
call qword [sym.imp.python39.dll_PyLong_FromLongLong]
mov r12, qword [0x0052dfe8]
mov rbx, rax
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_GetItem]
test rax, rax
jne 0x493598
mov r8, rbx
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_SetItem]
mov rax, rbx
jmp 0x493598
mov rax, qword [sym.imp.python39.dll__Py_NoneStruct]
mov r13, r12
mov qword [rsi], rax
jmp 0x49359b
mov ecx, dword [r13 + 1]
add r13, 5
call qword [sym.imp.python39.dll_PyLong_FromLong]
mov r12, qword [0x0052dfe8]
mov rbx, rax
jmp 0x493a40
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 0x49359b
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 0x494077
lea eax, [rbp - 1]
mov rdi, qword [sym.imp.python39.dll_PyNumber_InPlaceAdd]
lea rbp, [r13 + rax*8 + 0xe]
jmp 0x493b25
cmp rbx, rbp
je 0x493b65
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 0x493b20
mov rcx, r13
call qword [sym.imp.python39.dll__Py_Dealloc]
cmp rbx, rbp
jne 0x493b25
mov eax, dword [rsp + 0x34]
mov rdi, qword [rsp + 0x28]
lea r13, [rdi + rax*8]
sub qword [r12], 1
je 0x493d80
cmp byte [rsp + 0x33], 0x2d
je 0x493e1e
mov r12, qword [0x0052dfe8]
mov rdx, r14
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_GetItem]
test rax, rax
jne 0x493598
mov r8, r14
mov rdx, r14
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_SetItem]
mov rax, r14
jmp 0x493598
movq xmm0, qword [r13 + 1]
add r13, 9
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
mov r12, qword [0x0052dfe0]
lea rcx, [0x0047df70]
mov rbx, rax
mov rax, qword [rax + 8]
mov rbp, qword [rax + 0x78]
mov rdi, qword [rax + 0xc8]
jmp 0x4936bc
mov edx, 1
mov rcx, r12
add r13, 2
call qword [sym.imp.python39.dll_PyBytes_FromStringAndSize]
mov rbx, rax
mov r12, qword [0x0052dfd8]
jmp 0x493a40
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 [0x0052dfd8]
mov rdi, rax
mov rdx, rax
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_GetItem]
test rax, rax
jne 0x493598
mov r8, rdi
mov rdx, rdi
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_SetItem]
mov rax, rdi
jmp 0x493598
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 0x493c0d
mov rcx, qword [0x0052dc80]
lea rdx, str.Ellipsis
call qword [sym.imp.python39.dll_PyObject_GetAttrString]
jmp 0x493745
mov rdx, r13
lea rcx, [rax + 0x18]
mov r8d, edi
call 0x4934a0
mov r13, rax
jmp 0x493694
mov rcx, qword [rax + 0x18]
mov rdx, r13
mov r8d, edi
call 0x4934a0
mov r13, rax
jmp 0x493794
mov r13, r12
nop dword [rax + rax]
add r13, 1
cmp byte [r13 - 1], 0
jne 0x493d08
mov rcx, qword [0x0052dc80]
mov rdx, r12
call qword [sym.imp.python39.dll_PyObject_GetAttrString]
mov qword [rsi], rax
jmp 0x49359b
mov r13, r12
nop dword [rax + rax]
add r13, 1
cmp byte [r13 - 1], 0
jne 0x493d38
jmp 0x493d13
mov r8, rbx
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_SetItem]
mov rax, rbx
jmp 0x4936d8
mov r8, rdi
mov rdx, rdi
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_SetItem]
mov rax, rdi
jmp 0x4938fb
mov rcx, r12
call qword [sym.imp.python39.dll__Py_Dealloc]
cmp byte [rsp + 0x33], 0x2d
jne 0x493b88
jmp 0x493e1e
mov rax, qword [0x0051c940]
mov rax, qword [rax + 0x10]
jmp 0x4937f1
xor ecx, ecx
lea r12d, [rbp - 1]
call qword [sym.imp.python39.dll_PySet_New]
mov rdi, rax
test ebp, ebp
jle 0x493dfa
mov rbp, qword [sym.imp.python39.dll_PySet_Add]
lea r14, [rsp + 0x50]
mov rdx, r13
mov r8d, 1
mov rcx, r14
call 0x4934a0
mov rdx, qword [rsp + 0x50]
mov rcx, rdi
mov r13, rax
call rbp
mov eax, r12d
sub r12d, 1
test eax, eax
jg 0x493dc8
cmp bl, 0x53
jne 0x493629
mov r12, qword [0x0052dfb8]
jmp 0x493630
lea r14, [rsp + 0x50]
mov rcx, r14
call qword [sym.imp.python39.dll_PyUnicode_InternInPlace]
mov rax, qword [rsp + 0x50]
jmp 0x493598
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 0x493b88
mov rcx, r12
call qword [sym.imp.python39.dll__Py_Dealloc]
jmp 0x493b88
mov rbx, qword [0x0052dd10]
test rbx, rbx
je 0x4940e3
nop dword [rax]
mov rax, qword [rbx + 8]
mov r13, qword [0x0052dfe0]
lea rcx, [0x0047df70]
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 0x494060
mov rdx, qword [rax + 8]
mov r13, rdi
mov qword [rdx + 0x78], r12
mov qword [rdx + 0xc8], rbp
mov qword [rsi], rax
jmp 0x49359b
mov rbx, qword [0x0052dd08]
test rbx, rbx
jne 0x493e68
pxor xmm0, xmm0
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
movsd xmm0, qword [rax + 0x10]
orpd xmm0, xmmword [0x0051a970]
mov qword [0x0052dd08], rax
mov rbx, rax
movsd qword [rax + 0x10], xmm0
jmp 0x493e68
mov rbx, qword [0x0052dd00]
test rbx, rbx
jne 0x493e68
movsd xmm0, qword [0x0051a980]
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
movsd xmm0, qword [rax + 0x10]
mov qword [0x0052dd00], rax
mov rbx, rax
andpd xmm0, xmm8
movsd qword [rax + 0x10], xmm0
jmp 0x493e68
mov rbx, qword [0x0052dcf8]
test rbx, rbx
jne 0x493e68
movsd xmm0, qword [0x0051a980]
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
movsd xmm0, qword [rax + 0x10]
mov qword [0x0052dcf8], rax
mov rbx, rax
andpd xmm0, xmm10
xorpd xmm0, xmm9
movsd qword [rax + 0x10], xmm0
jmp 0x493e68
mov rbx, qword [0x0052dcf0]
test rbx, rbx
jne 0x493e68
movsd xmm0, qword [0x0051a988]
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
movsd xmm0, qword [rax + 0x10]
mov qword [0x0052dcf0], rax
mov rbx, rax
andpd xmm0, xmm11
movsd qword [rax + 0x10], xmm0
jmp 0x493e68
mov rbx, qword [0x0052dce8]
test rbx, rbx
jne 0x493e68
movsd xmm0, qword [0x0051a988]
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
movsd xmm0, qword [rax + 0x10]
mov qword [0x0052dce8], rax
mov rbx, rax
andpd xmm0, xmm6
xorpd xmm0, xmm7
movsd qword [rax + 0x10], xmm0
jmp 0x493e68
mov rax, qword [sym.imp.python39.dll_PyFunction_Type]
nop dword [rax]
mov qword [rsi], rax
mov r13, rcx
jmp 0x49359b
mov rax, qword [sym.imp.python39.dll_PyGen_Type]
jmp 0x493ff8
mov rax, qword [sym.imp.python39.dll_PyEllipsis_Type]
jmp 0x493ff8
mov rax, qword [sym.imp.python39.dll__Py_NotImplementedStruct]
mov rax, qword [rax + 8]
jmp 0x493ff8
mov rax, qword [sym.imp.python39.dll_PyCode_Type]
jmp 0x493ff8
mov rax, qword [sym.imp.python39.dll__Py_NoneStruct]
mov rax, qword [rax + 8]
jmp 0x493ff8
mov rax, qword [sym.imp.python39.dll_PyCFunction_Type]
jmp 0x493ff8
xor ecx, ecx
lea r12d, [rbp - 1]
call qword [sym.imp.python39.dll_PyFrozenSet_New]
mov rdi, rax
test ebp, ebp
jg 0x493dbc
jmp 0x493629
mov r8, rbx
mov rdx, rbx
mov rcx, r13
call qword [sym.imp.python39.dll_PyDict_SetItem]
mov rax, rbx
jmp 0x493ea1
mov r13, qword [rsp + 0x28]
jmp 0x493b72
lea rcx, [0x00518317]
call qword [sym.imp.python39.dll_PyBytes_FromString]
mov rcx, qword [sym.imp.python39.dll_PyFrozenSet_Type]
mov rdx, rax
call fcn.00490b40
mov qword [0x0052dd18], rax
mov rdi, rax
jmp 0x493629
movsx edx, bl
lea rcx, str.Missing_decoding_for__d_n
call fcn.0048df40
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.0048df40
call sub.msvcrt.dll_abort
pxor xmm0, xmm0
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
mov qword [0x0052dd10], rax
mov rbx, rax
jmp 0x493e68
mov edx, 0x5a
lea rcx, str.Missing_decoding_for__d_n
call fcn.0048df40
call sub.msvcrt.dll_abort
movzx edx, al
lea rcx, str.Missing_anon_value_for__d_n
call fcn.0048df40
call sub.msvcrt.dll_abort
movzx edx, al
lea rcx, str.Missing_special_value_for__d_n
call fcn.0048df40
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 [0x0052dd21], 0
mov r12, rcx
mov rbp, rdx
je 0x4f2d48
mov ecx, 0xa
lea rdi, [0x0051a79a]
mov rsi, rbp
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
jne 0x4f2e60
mov rsi, qword [0x0052dc38]
jmp 0x4f2d05
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 0x4f2d00
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 0x4934a0
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 [0x0052dc38], rax
mov rdx, rax
mov r9d, dword [rax]
lea rax, [rax + 4]
mov qword [0x0052dc38], rax
mov eax, dword [rdx + 4]
lea rcx, [rdx + 8]
mov qword [0x0052dc38], rcx
test eax, eax
je 0x4f2e48
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 0x4f2db0
not eax
cmp r9d, eax
jne 0x4f2efd
mov byte [0x0052dd21], 1
jmp 0x4f2cd9
cmp byte [0x0052dd20], 0
jne 0x4f2cf7
mov rbx, qword [sym.imp.python39.dll_PyDict_New]
lea rsi, [0x0052d428]
call rbx
mov qword [0x0052dfe8], rax
call rbx
mov qword [0x0052dfe0], rax
call rbx
mov qword [0x0052dfd8], rax
call rbx
mov qword [0x0052dfd0], rax
call rbx
mov qword [0x0052dfc8], rax
call rbx
mov qword [0x0052dfc0], rax
call rbx
mov qword [0x0052dfb8], rax
call rbx
mov rdi, qword [sym.imp.python39.dll_PyLong_FromLong]
mov rbx, 0xfffffffffffffffb
mov qword [0x0052dfb0], 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 0x4f2ed8
mov byte [0x0052dd20], 1
jmp 0x4f2cf7
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 0x4f2f33
mov rdx, r8
call rdi
test eax, eax
jne 0x4f2f70
mov rax, qword [rsi + 0xa0]
xor ebx, ebx
test rax, rax
jle 0x4f2f6e
nop dword [rax]
mov rcx, qword [rsi + rbx*8 + 0xa8]
test rcx, rcx
je 0x4f2f65
mov rdx, rbp
call rdi
test eax, eax
jne 0x4f2f70
mov rax, qword [rsi + 0xa0]
add rbx, 1
cmp rbx, rax
jl 0x4f2f48
xor eax, eax
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
ret