Function at 0x586c90
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 0x527585
movq xmm6, qword [0x005afca0]
movq xmm7, qword [0x005afcb0]
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.0x527524.1
lea rdx, [0x005adc34]
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 0x527dd6
nop dword [rax]
mov qword [rsi], rax
add qword [rax], 2
add rsi, 8
add r15d, 1
cmp dword [rsp + 0x130], r15d
jne 0x5274f8
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 0x527d79
test ebp, ebp
jne 0x528011
mov rdi, qword [0x005ca898]
test rdi, rdi
je 0x528051
mov r12, qword [0x005cab30]
mov rax, qword [rdi + 8]
lea rcx, [0x00512040]
mov rbp, qword [rax + 0x78]
mov rbx, qword [rax + 0xc8]
mov qword [rax + 0x78], rcx
lea rcx, [0x00516680]
jmp 0x5278af
movsxd rdx, dword [r13 + 1]
lea rax, [r13 + 5]
mov qword [rsi], rax
lea r13, [rax + rdx]
jmp 0x52756f
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 0x527c90
mov rax, qword [rbx + 8]
lea rcx, [0x00508040]
mov r12, qword [0x005cab50]
mov rdi, qword [rax + 0xc8]
mov rbp, qword [rax + 0x78]
mov qword [rax + 0x78], rcx
lea rcx, [0x00511fd0]
mov qword [rax + 0xc8], rcx
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_GetItem]
test rax, rax
je 0x527d18
mov rdx, qword [rax + 8]
mov qword [rdx + 0x78], rbp
mov qword [rdx + 0xc8], rdi
mov qword [rsi], rax
jmp 0x52756b
cmp byte [r13 + 1], 5
lea rdi, [r13 + 2]
ja case.default.0x5276e2
movzx eax, byte [r13 + 1]
lea rdx, [0x005add5c]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
movzx eax, byte [r13 + 1]
lea rbx, [r13 + 2]
test al, al
je 0x527c70
cmp al, 1
jne 0x5280f6
mov rcx, qword [0x005ca800]
lea rdx, [0x005adbdb]
call qword [sym.imp.python39.dll_PyObject_GetAttrString]
mov qword [rsi], rax
mov r13, rbx
jmp 0x52756b
movzx eax, byte [r13 + 1]
lea rcx, [r13 + 2]
cmp al, 6
ja case.default.0x52773f
lea rdx, [0x005add74]
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 0x527cb0
mov rax, qword [rbx + 8]
lea rcx, [0x00507fe0]
mov r12, qword [0x005cab48]
mov rbp, qword [rax + 0x78]
mov rdi, qword [rax + 0xc8]
mov qword [rax + 0x78], rcx
lea rcx, [0x00511f60]
jmp 0x52768c
mov rdx, r12
lea rcx, [rsp + 0x40]
mov r8d, 2
call 0x527470
mov rdx, qword [rsp + 0x48]
mov r13, rax
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x527d69
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.00526580
mov qword [rsi], rax
jmp 0x52756b
lea r14, [rsp + 0x50]
mov rdx, r12
mov r8d, 2
mov rcx, r14
call 0x527470
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov r13, rax
call qword [sym.imp.python39.dll_Py_GenericAlias]
jmp 0x527568
mov rax, qword [sym.imp.python39.dll__Py_FalseStruct]
mov r13, r12
mov qword [rsi], rax
jmp 0x52756b
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 0x527887
mov rbp, qword [sym.imp.python39.dll_PyDict_SetItem]
lea r14, [rsp + 0x50]
mov rdx, r13
mov r8d, 2
mov rcx, r14
call 0x527470
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
mov rcx, rdi
mov r13, rax
call rbp
sub ebx, 1
jae 0x52785f
mov rax, qword [rdi + 8]
lea rcx, [0x0050d490]
mov r12, qword [0x005cab40]
mov rbx, qword [rax + 0xc8]
mov rbp, qword [rax + 0x78]
mov qword [rax + 0x78], rcx
lea rcx, [0x0050d3b0]
mov qword [rax + 0xc8], rcx
mov rdx, rdi
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_GetItem]
test rax, rax
je 0x527d30
mov rdx, qword [rax + 8]
mov qword [rdx + 0x78], rbp
mov qword [rdx + 0xc8], rbx
jmp 0x527568
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 0x52756b
lea r14, [rsp + 0x50]
mov r8d, 3
mov rdx, r12
mov rcx, r14
call 0x527470
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 0x52756b
lea r14, [rsp + 0x50]
mov r8d, 3
mov rdx, r12
mov rcx, r14
call 0x527470
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov r13, rax
call fcn.0051b8c0
mov qword [rsi], rax
jmp 0x52756b
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 0x52756b
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 0x52756b
mov rax, qword [sym.imp.python39.dll__Py_TrueStruct]
mov r13, r12
mov qword [rsi], rax
jmp 0x52756b
mov rcx, qword [r13 + 1]
add r13, 9
call qword [sym.imp.python39.dll_PyLong_FromLongLong]
mov r12, qword [0x005cab68]
mov rbx, rax
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_GetItem]
test rax, rax
jne 0x527568
mov r8, rbx
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_SetItem]
mov rax, rbx
jmp 0x527568
mov rax, qword [sym.imp.python39.dll__Py_NoneStruct]
mov r13, r12
mov qword [rsi], rax
jmp 0x52756b
mov ecx, dword [r13 + 1]
add r13, 5
call qword [sym.imp.python39.dll_PyLong_FromLong]
mov r12, qword [0x005cab68]
mov rbx, rax
jmp 0x527a10
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 0x52756b
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 0x528047
lea eax, [rbp - 1]
mov rdi, qword [sym.imp.python39.dll_PyNumber_InPlaceAdd]
lea rbp, [r13 + rax*8 + 0xe]
jmp 0x527af5
cmp rbx, rbp
je 0x527b35
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 0x527af0
mov rcx, r13
call qword [sym.imp.python39.dll__Py_Dealloc]
cmp rbx, rbp
jne 0x527af5
mov eax, dword [rsp + 0x34]
mov rdi, qword [rsp + 0x28]
lea r13, [rdi + rax*8]
sub qword [r12], 1
je 0x527d50
cmp byte [rsp + 0x33], 0x2d
je 0x527dee
mov r12, qword [0x005cab68]
mov rdx, r14
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_GetItem]
test rax, rax
jne 0x527568
mov r8, r14
mov rdx, r14
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_SetItem]
mov rax, r14
jmp 0x527568
movq xmm0, qword [r13 + 1]
add r13, 9
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
mov r12, qword [0x005cab60]
lea rcx, [0x00511f40]
mov rbx, rax
mov rax, qword [rax + 8]
mov rbp, qword [rax + 0x78]
mov rdi, qword [rax + 0xc8]
jmp 0x52768c
mov edx, 1
mov rcx, r12
add r13, 2
call qword [sym.imp.python39.dll_PyBytes_FromStringAndSize]
mov rbx, rax
mov r12, qword [0x005cab58]
jmp 0x527a10
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 [0x005cab58]
mov rdi, rax
mov rdx, rax
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_GetItem]
test rax, rax
jne 0x527568
mov r8, rdi
mov rdx, rdi
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_SetItem]
mov rax, rdi
jmp 0x527568
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 0x527bdd
mov rcx, qword [0x005ca800]
lea rdx, str.Ellipsis
call qword [sym.imp.python39.dll_PyObject_GetAttrString]
jmp 0x527715
mov rdx, r13
lea rcx, [rax + 0x18]
mov r8d, edi
call 0x527470
mov r13, rax
jmp 0x527664
mov rcx, qword [rax + 0x18]
mov rdx, r13
mov r8d, edi
call 0x527470
mov r13, rax
jmp 0x527764
mov r13, r12
nop dword [rax + rax]
add r13, 1
cmp byte [r13 - 1], 0
jne 0x527cd8
mov rcx, qword [0x005ca800]
mov rdx, r12
call qword [sym.imp.python39.dll_PyObject_GetAttrString]
mov qword [rsi], rax
jmp 0x52756b
mov r13, r12
nop dword [rax + rax]
add r13, 1
cmp byte [r13 - 1], 0
jne 0x527d08
jmp 0x527ce3
mov r8, rbx
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_SetItem]
mov rax, rbx
jmp 0x5276a8
mov r8, rdi
mov rdx, rdi
mov rcx, r12
call qword [sym.imp.python39.dll_PyDict_SetItem]
mov rax, rdi
jmp 0x5278cb
mov rcx, r12
call qword [sym.imp.python39.dll__Py_Dealloc]
cmp byte [rsp + 0x33], 0x2d
jne 0x527b58
jmp 0x527dee
mov rax, qword [0x005b1c80]
mov rax, qword [rax + 0x10]
jmp 0x5277c1
xor ecx, ecx
lea r12d, [rbp - 1]
call qword [sym.imp.python39.dll_PySet_New]
mov rdi, rax
test ebp, ebp
jle 0x527dca
mov rbp, qword [sym.imp.python39.dll_PySet_Add]
lea r14, [rsp + 0x50]
mov rdx, r13
mov r8d, 1
mov rcx, r14
call 0x527470
mov rdx, qword [rsp + 0x50]
mov rcx, rdi
mov r13, rax
call rbp
mov eax, r12d
sub r12d, 1
test eax, eax
jg 0x527d98
cmp bl, 0x53
jne 0x5275f9
mov r12, qword [0x005cab38]
jmp 0x527600
lea r14, [rsp + 0x50]
mov rcx, r14
call qword [sym.imp.python39.dll_PyUnicode_InternInPlace]
mov rax, qword [rsp + 0x50]
jmp 0x527568
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 0x527b58
mov rcx, r12
call qword [sym.imp.python39.dll__Py_Dealloc]
jmp 0x527b58
mov rbx, qword [0x005ca890]
test rbx, rbx
je 0x5280b3
nop dword [rax]
mov rax, qword [rbx + 8]
mov r13, qword [0x005cab60]
lea rcx, [0x00511f40]
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 0x528030
mov rdx, qword [rax + 8]
mov r13, rdi
mov qword [rdx + 0x78], r12
mov qword [rdx + 0xc8], rbp
mov qword [rsi], rax
jmp 0x52756b
mov rbx, qword [0x005ca888]
test rbx, rbx
jne 0x527e38
pxor xmm0, xmm0
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
movsd xmm0, qword [rax + 0x10]
orpd xmm0, xmmword [0x005afcb0]
mov qword [0x005ca888], rax
mov rbx, rax
movsd qword [rax + 0x10], xmm0
jmp 0x527e38
mov rbx, qword [0x005ca880]
test rbx, rbx
jne 0x527e38
movsd xmm0, qword [0x005afcc0]
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
movsd xmm0, qword [rax + 0x10]
mov qword [0x005ca880], rax
mov rbx, rax
andpd xmm0, xmm8
movsd qword [rax + 0x10], xmm0
jmp 0x527e38
mov rbx, qword [0x005ca878]
test rbx, rbx
jne 0x527e38
movsd xmm0, qword [0x005afcc0]
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
movsd xmm0, qword [rax + 0x10]
mov qword [0x005ca878], rax
mov rbx, rax
andpd xmm0, xmm10
xorpd xmm0, xmm9
movsd qword [rax + 0x10], xmm0
jmp 0x527e38
mov rbx, qword [0x005ca870]
test rbx, rbx
jne 0x527e38
movsd xmm0, qword [0x005afcc8]
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
movsd xmm0, qword [rax + 0x10]
mov qword [0x005ca870], rax
mov rbx, rax
andpd xmm0, xmm11
movsd qword [rax + 0x10], xmm0
jmp 0x527e38
mov rbx, qword [0x005ca868]
test rbx, rbx
jne 0x527e38
movsd xmm0, qword [0x005afcc8]
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
movsd xmm0, qword [rax + 0x10]
mov qword [0x005ca868], rax
mov rbx, rax
andpd xmm0, xmm6
xorpd xmm0, xmm7
movsd qword [rax + 0x10], xmm0
jmp 0x527e38
mov rax, qword [sym.imp.python39.dll_PyFunction_Type]
nop dword [rax]
mov qword [rsi], rax
mov r13, rcx
jmp 0x52756b
mov rax, qword [sym.imp.python39.dll_PyGen_Type]
jmp 0x527fc8
mov rax, qword [sym.imp.python39.dll_PyEllipsis_Type]
jmp 0x527fc8
mov rax, qword [sym.imp.python39.dll__Py_NotImplementedStruct]
mov rax, qword [rax + 8]
jmp 0x527fc8
mov rax, qword [sym.imp.python39.dll_PyCode_Type]
jmp 0x527fc8
mov rax, qword [sym.imp.python39.dll__Py_NoneStruct]
mov rax, qword [rax + 8]
jmp 0x527fc8
mov rax, qword [sym.imp.python39.dll_PyCFunction_Type]
jmp 0x527fc8
xor ecx, ecx
lea r12d, [rbp - 1]
call qword [sym.imp.python39.dll_PyFrozenSet_New]
mov rdi, rax
test ebp, ebp
jg 0x527d8c
jmp 0x5275f9
mov r8, rbx
mov rdx, rbx
mov rcx, r13
call qword [sym.imp.python39.dll_PyDict_SetItem]
mov rax, rbx
jmp 0x527e71
mov r13, qword [rsp + 0x28]
jmp 0x527b42
lea rcx, [0x005ad657]
call qword [sym.imp.python39.dll_PyBytes_FromString]
mov rcx, qword [sym.imp.python39.dll_PyFrozenSet_Type]
mov rdx, rax
call fcn.00524b10
mov qword [0x005ca898], rax
mov rdi, rax
jmp 0x5275f9
movsx edx, bl
lea rcx, str.Missing_decoding_for__d_n
call fcn.00521f10
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.00521f10
call sub.msvcrt.dll_abort
pxor xmm0, xmm0
call qword [sym.imp.python39.dll_PyFloat_FromDouble]
mov qword [0x005ca890], rax
mov rbx, rax
jmp 0x527e38
mov edx, 0x5a
lea rcx, str.Missing_decoding_for__d_n
call fcn.00521f10
call sub.msvcrt.dll_abort
movzx edx, al
lea rcx, str.Missing_anon_value_for__d_n
call fcn.00521f10
call sub.msvcrt.dll_abort
movzx edx, al
lea rcx, str.Missing_special_value_for__d_n
call fcn.00521f10
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 [0x005ca8a1], 0
mov r12, rcx
mov rbp, rdx
je 0x586d18
mov ecx, 0xa
lea rdi, [0x005afada]
mov rsi, rbp
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
jne 0x586e30
mov rsi, qword [0x005ca7b8]
jmp 0x586cd5
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 0x586cd0
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 0x527470
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 [0x005ca7b8], rax
mov rdx, rax
mov r9d, dword [rax]
lea rax, [rax + 4]
mov qword [0x005ca7b8], rax
mov eax, dword [rdx + 4]
lea rcx, [rdx + 8]
mov qword [0x005ca7b8], rcx
test eax, eax
je 0x586e18
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 0x586d80
not eax
cmp r9d, eax
jne 0x586ecd
mov byte [0x005ca8a1], 1
jmp 0x586ca9
cmp byte [0x005ca8a0], 0
jne 0x586cc7
mov rbx, qword [sym.imp.python39.dll_PyDict_New]
lea rsi, [0x005c9fa8]
call rbx
mov qword [0x005cab68], rax
call rbx
mov qword [0x005cab60], rax
call rbx
mov qword [0x005cab58], rax
call rbx
mov qword [0x005cab50], rax
call rbx
mov qword [0x005cab48], rax
call rbx
mov qword [0x005cab40], rax
call rbx
mov qword [0x005cab38], rax
call rbx
mov rdi, qword [sym.imp.python39.dll_PyLong_FromLong]
mov rbx, 0xfffffffffffffffb
mov qword [0x005cab30], 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 0x586ea8
mov byte [0x005ca8a0], 1
jmp 0x586cc7
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 0x586f03
mov rdx, r8
call rdi
test eax, eax
jne 0x586f40
mov rax, qword [rsi + 0xa0]
xor ebx, ebx
test rax, rax
jle 0x586f3e
nop dword [rax]
mov rcx, qword [rsi + rbx*8 + 0xa8]
test rcx, rcx
je 0x586f35
mov rdx, rbp
call rdi
test eax, eax
jne 0x586f40
mov rax, qword [rsi + 0xa0]
add rbx, 1
cmp rbx, rax
jl 0x586f18
xor eax, eax
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
ret