Function at 0x140044a50
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, 0x58
cmp byte [0x140074778], 0
mov r14, rcx
mov rbp, rdx
mov rsi, r8
je 0x140044ae8
lea rdx, [0x140067102]
mov rcx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x1400454c0
mov rbx, qword [0x140074770]
jmp 0x140044a9d
lea rbx, [rdx + rax + 4]
mov rdx, rbx
mov rcx, rsi
call sub.msvcrt.dll_strcmp
mov rcx, rbx
mov edi, eax
call sub.msvcrt.dll_strlen
lea rdx, [rbx + rax + 1]
mov eax, dword [rdx]
test edi, edi
jne 0x140044a98
movzx r9d, word [rdx + 4]
lea r8, [rdx + 6]
mov rcx, r14
mov rdx, rbp
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.140042d90
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 r12d, dword [rax + 4]
lea r8, [rax + 8]
mov ebx, dword [rax]
mov eax, 0xffffffff
mov qword [0x140074770], r8
cmp r12, 0x2e
jbe 0x14004515e
test r8b, 7
je 0x140045560
mov ecx, 0xffffffff
lea r13, [0x140069220]
jmp 0x140044b5a
test r8b, 7
je 0x140045528
add r8, 1
mov eax, ecx
xor cl, byte [r8 - 1]
shr eax, 8
movzx ecx, cl
xor eax, dword [r13 + rcx*4]
mov ecx, eax
sub r12, 1
jne 0x140044b50
mov rdi, 0xffffffffffffffff
mov qword [rsp + 0x28], r12
mov r15, r8
xor edx, edx
xor r9d, r9d
mov qword [rsp + 0x30], r8
xor r10d, r10d
xor r11d, r11d
lea rax, [0x140067220]
mov dword [rsp + 0x3c], ebx
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x48], r14
mov r14, rdi
nop dword [rax + rax]
xor rcx, qword [r15]
xor r9, qword [r15 + 0x18]
add r15, 0x28
mov rbx, qword [r15 - 8]
mov r8, r9
mov r9, rcx
movzx esi, ch
shr r9, 0x38
xor r11, qword [r15 - 0x20]
mov rdi, qword [r15 - 0x18]
xor rbx, rdx
movzx edx, cl
mov r12, r11
mov edx, dword [rax + rdx*4]
xor edx, dword [rax + r9*4 + 0x1c00]
mov r9, rcx
xor rdi, r10
shr r9, 0x10
xor edx, dword [rax + rsi*4 + 0x400]
movzx esi, bh
movzx r9d, r9b
xor edx, dword [rax + r9*4 + 0x800]
mov r9, rcx
shr r9, 0x18
movzx r9d, r9b
xor edx, dword [rax + r9*4 + 0xc00]
mov r9, rcx
shr r9, 0x20
movzx r9d, r9b
xor edx, dword [rax + r9*4 + 0x1000]
mov r9, rcx
shr rcx, 0x30
shr r9, 0x28
movzx ecx, cl
movzx r9d, r9b
xor edx, dword [rax + r9*4 + 0x1400]
xor edx, dword [rax + rcx*4 + 0x1800]
movzx r9d, r11b
mov ecx, edx
mov rdx, r11
mov r11d, dword [rax + r9*4]
movzx r9d, dil
shr rdx, 0x38
mov r10d, dword [rax + r9*4]
movzx r9d, r8b
xor r11d, dword [rax + rdx*4 + 0x1c00]
mov rdx, r12
mov r9d, dword [rax + r9*4]
movzx edx, dh
xor r11d, dword [rax + rdx*4 + 0x400]
mov rdx, r12
shr rdx, 0x10
movzx edx, dl
xor r11d, dword [rax + rdx*4 + 0x800]
mov rdx, r12
shr rdx, 0x18
movzx edx, dl
xor r11d, dword [rax + rdx*4 + 0xc00]
mov rdx, r12
shr rdx, 0x20
movzx edx, dl
xor r11d, dword [rax + rdx*4 + 0x1000]
mov rdx, r12
shr r12, 0x30
shr rdx, 0x28
movzx r12d, r12b
movzx edx, dl
xor r11d, dword [rax + rdx*4 + 0x1400]
mov rdx, rdi
xor r11d, dword [rax + r12*4 + 0x1800]
shr rdx, 0x38
xor r10d, dword [rax + rdx*4 + 0x1c00]
mov rdx, rdi
movzx edx, dh
xor r10d, dword [rax + rdx*4 + 0x400]
mov rdx, rdi
shr rdx, 0x10
movzx edx, dl
xor r10d, dword [rax + rdx*4 + 0x800]
mov rdx, rdi
shr rdx, 0x18
movzx edx, dl
xor r10d, dword [rax + rdx*4 + 0xc00]
mov rdx, rdi
shr rdx, 0x20
movzx edx, dl
xor r10d, dword [rax + rdx*4 + 0x1000]
mov rdx, rdi
shr rdi, 0x30
shr rdx, 0x28
movzx edi, dil
movzx edx, dl
xor r10d, dword [rax + rdx*4 + 0x1400]
mov rdx, r8
xor r10d, dword [rax + rdi*4 + 0x1800]
shr rdx, 0x38
xor r9d, dword [rax + rdx*4 + 0x1c00]
mov rdx, r8
movzx edx, dh
xor r9d, dword [rax + rdx*4 + 0x400]
mov rdx, r8
shr rdx, 0x10
movzx edx, dl
xor r9d, dword [rax + rdx*4 + 0x800]
mov rdx, r8
shr rdx, 0x18
movzx edx, dl
xor r9d, dword [rax + rdx*4 + 0xc00]
mov rdx, r8
shr rdx, 0x20
movzx edx, dl
xor r9d, dword [rax + rdx*4 + 0x1000]
mov rdx, r8
shr r8, 0x30
shr rdx, 0x28
movzx r8d, r8b
movzx edx, dl
xor r9d, dword [rax + rdx*4 + 0x1400]
xor r9d, dword [rax + r8*4 + 0x1800]
mov r8, rbx
movzx edx, bl
shr r8, 0x38
mov edx, dword [rax + rdx*4]
xor edx, dword [rax + r8*4 + 0x1c00]
mov r8, rbx
xor edx, dword [rax + rsi*4 + 0x400]
shr r8, 0x10
movzx r8d, r8b
xor edx, dword [rax + r8*4 + 0x800]
mov r8, rbx
shr r8, 0x18
movzx r8d, r8b
xor edx, dword [rax + r8*4 + 0xc00]
mov r8, rbx
shr r8, 0x20
movzx r8d, r8b
xor edx, dword [rax + r8*4 + 0x1000]
mov r8, rbx
shr rbx, 0x30
shr r8, 0x28
movzx ebx, bl
movzx r8d, r8b
xor edx, dword [rax + r8*4 + 0x1400]
xor edx, dword [rax + rbx*4 + 0x1800]
sub r14, 1
jne 0x140044bb8
mov rdi, qword [rsp + 0x40]
mov r8, qword [rsp + 0x30]
mov r12, qword [rsp + 0x28]
mov ebx, dword [rsp + 0x3c]
lea rax, [rdi + rdi*4]
mov r14, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x20]
mov edi, r11d
lea r8, [r8 + rax*8]
mov eax, ecx
xor rax, qword [r8]
xor rdi, qword [r8 + 8]
movzx ecx, al
shr rax, 8
mov ecx, dword [r13 + rcx*4]
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
xor rdi, rax
movzx eax, dil
shr rdi, 8
mov eax, dword [r13 + rax*4]
xor rax, rdi
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
xor r10, qword [r8 + 0x10]
xor r9, qword [r8 + 0x18]
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
xor r10, rax
movzx eax, r10b
shr r10, 8
mov eax, dword [r13 + rax*4]
xor rax, r10
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
xor r9, rax
movzx eax, r9b
shr r9, 8
mov eax, dword [r13 + rax*4]
xor rax, r9
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
xor rdx, qword [r8 + 0x20]
add r8, 0x28
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
mov rcx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rcx, 8
xor rax, rcx
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [r13 + rax*4]
xor rax, rdx
mov rdx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rdx, 8
xor rax, rdx
mov rdx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rdx, 8
xor rax, rdx
mov rdx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rdx, 8
xor rax, rdx
mov rdx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rdx, 8
xor rax, rdx
mov rdx, rax
movzx eax, al
mov eax, dword [r13 + rax*4]
shr rdx, 8
xor rax, rdx
mov rcx, rax
movzx eax, al
mov edx, dword [r13 + rax*4]
shr rcx, 8
xor rdx, rcx
mov rax, rdx
movzx edx, dl
shr rax, 8
xor eax, dword [r13 + rdx*4]
cmp r12, 7
jbe 0x14004540b
mov ecx, eax
xor al, byte [r8]
lea rdx, [0x140069220]
movzx eax, al
shr ecx, 8
lea r9, [r12 - 8]
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 1]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r8 + 2]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 3]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r8 + 4]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 5]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r8 + 6]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 7]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
cmp r9, 7
jbe 0x1400453fe
mov ecx, eax
xor al, byte [r8 + 8]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 9]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r8 + 0xa]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 0xb]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r8 + 0xc]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 0xd]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r8 + 0xe]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 0xf]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
lea rcx, [r12 - 0x10]
cmp rcx, 7
jbe 0x1400453fe
mov ecx, eax
xor al, byte [r8 + 0x10]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 0x11]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r8 + 0x12]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 0x13]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r8 + 0x14]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 0x15]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r8 + 0x16]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 0x17]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
lea rcx, [r12 - 0x18]
cmp rcx, 7
jbe 0x1400453fe
mov ecx, eax
xor al, byte [r8 + 0x18]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 0x19]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r8 + 0x1a]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 0x1b]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r8 + 0x1c]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 0x1d]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r8 + 0x1e]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 0x1f]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
lea rcx, [r12 - 0x20]
cmp rcx, 7
jbe 0x1400453fe
mov ecx, eax
xor al, byte [r8 + 0x20]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 0x21]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r8 + 0x22]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 0x23]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r8 + 0x24]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 0x25]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov ecx, eax
xor al, byte [r8 + 0x26]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
xor cl, byte [r8 + 0x27]
movzx ecx, cl
shr eax, 8
xor eax, dword [rdx + rcx*4]
shr r9, 3
and r12d, 7
lea r8, [r8 + r9*8 + 8]
test r12, r12
je 0x1400454a9
mov ecx, eax
xor al, byte [r8]
lea rdx, [0x140069220]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
cmp r12, 1
je 0x1400454a9
xor al, byte [r8 + 1]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
cmp r12, 2
je 0x1400454a9
xor al, byte [r8 + 2]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
cmp r12, 3
je 0x1400454a9
xor al, byte [r8 + 3]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
cmp r12, 4
je 0x1400454a9
xor al, byte [r8 + 4]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
cmp r12, 5
je 0x1400454a9
xor al, byte [r8 + 5]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
cmp r12, 6
je 0x1400454a9
xor al, byte [r8 + 6]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
not eax
cmp ebx, eax
jne 0x140045596
mov byte [0x140074778], 1
jmp 0x140044a72
cmp byte [0x140074768], 0
jne 0x140044a89
mov rbx, qword [sym.imp.python311.dll_PyDict_New]
call rbx
mov qword [0x1400747c0], rax
call rbx
mov qword [0x1400747b8], rax
call rbx
mov qword [0x1400747b0], rax
call rbx
mov qword [0x1400747f0], rax
call rbx
mov qword [0x1400747e8], rax
call rbx
mov qword [0x1400747e0], rax
call rbx
mov qword [0x1400747d0], rax
call rbx
mov byte [0x140074768], 1
mov qword [0x1400747c8], rax
jmp 0x140044a89
movabs rax, 0xcccccccccccccccd
mul r12
shr rdx, 5
lea rax, [rdx + rdx*4]
lea rdi, [rdx - 1]
shl rax, 3
sub r12, rax
mov eax, ecx
test rdi, rdi
jne 0x140044b7e
xor edx, edx
xor r9d, r9d
xor r10d, r10d
jmp 0x140044e7a
movabs rax, 0xcccccccccccccccd
mov ecx, 0xffffffff
lea r13, [0x140069220]
mul r12
mov rax, rdx
shr rax, 5
lea rdx, [rax + rax*4]
lea rdi, [rax - 1]
mov eax, 0xffffffff
shl rdx, 3
sub r12, rdx
jmp 0x14004554a
lea rcx, str.Error__corrupted_constants_object
call sub.msvcrt.dll_puts
call sub.msvcrt.dll_abort
nop
nop dword [rax + rax]
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
lea r9, str.package
lea rax, [rsp + 0x48]
mov r14, rcx
mov rcx, rdx
mov rdx, r8
mov qword [rsp + 0x20], rax
lea r8, str.O:iter_modules
call qword [sym.imp.python311.dll_PyArg_ParseTupleAndKeywords]
test eax, eax
je 0x140045920
mov r15, qword [sym.imp.python311.dll__PyRuntime]
mov rax, qword [r15 + 0x1f8]
mov rdx, qword [rax + 0x10]
mov eax, dword [rdx + 0x1188]
test eax, eax
je 0x1400458c0
sub eax, 1
mov dword [rdx + 0x1188], eax
cdqe
mov r12, qword [rdx + rax*8 + 0xf08]
mov qword [r12], 1
mov qword [r12 + 0x10], 0
lea rcx, [r12 - 0x10]
lea rbp, [0x14006710c]
mov qword [r12 + 0x20], 0
mov rax, qword [r15 + 0x1f8]
mov qword [r12 + 0x18], 0
mov rax, qword [rax + 0x10]
mov rdx, qword [rax + 0x2e8]
mov rax, qword [r12 - 8]
mov r8, qword [rdx + 8]
and eax, 3
movq xmm0, rdx
or rax, r8
mov qword [r8], rcx
movq xmm1, rax
mov rax, qword [0x14006b170]
punpcklqdq xmm0, xmm1
mov rbx, qword [rax]
mov rax, qword [r14 + 0x10]
movups xmmword [r12 - 0x10], xmm0
mov qword [rdx + 8], rcx
test rax, rax
je 0x1400456a3
mov rbp, qword [rax]
mov rdi, qword [rbx]
lea r13, [0x14006711c]
test rdi, rdi
jne 0x1400456cc
jmp 0x140045865
mov rdi, qword [rbx]
test rdi, rdi
je 0x140045865
mov eax, dword [rbx + 0x18]
test al, 0x10
je 0x1400456d9
sub eax, 0x10
mov dword [rbx + 0x18], eax
mov rcx, rbp
add rbx, 0x28
call sub.msvcrt.dll_strlen
mov rdx, rdi
mov rcx, rbp
mov r8, rax
mov rsi, rax
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x1400456c0
mov rdx, r13
mov rcx, rdi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x1400456c0
cmp byte [rdi + rsi], 0
je 0x1400456c0
lea rsi, [rdi + rsi + 1]
mov edx, 0x2e
mov rcx, rsi
call sub.msvcrt.dll_strchr
test rax, rax
jne 0x1400456c0
cmp qword [r14 + 0x10], 0
je 0x1400458d8
mov rcx, rsi
call qword [sym.imp.python311.dll_PyUnicode_FromString]
mov rdi, rax
mov rcx, qword [rsp + 0x48]
call fcn.140005070
test eax, eax
jne 0x140045890
mov rax, qword [r15 + 0x1f8]
mov rax, qword [rax + 0x10]
mov rsi, qword [rax + 0xe20]
test rsi, rsi
je 0x140045900
mov rdx, qword [rsi + 0x18]
sub dword [rax + 0xebc], 1
mov qword [rax + 0xe20], rdx
mov qword [rsi], 1
mov rax, qword [r15 + 0x1f8]
lea rcx, [rsi - 0x10]
mov rax, qword [rax + 0x10]
mov rdx, qword [rax + 0x2e8]
mov rax, qword [rsi - 8]
mov r8, qword [rdx + 8]
and eax, 3
movq xmm0, rdx
or rax, r8
test byte [rbx - 0x10], 2
mov qword [r8], rcx
movq xmm2, rax
mov rax, qword [sym.imp.python311.dll__Py_FalseStruct]
cmovne rax, qword [sym.imp.python311.dll__Py_TrueStruct]
punpcklqdq xmm0, xmm2
movups xmmword [rsi - 0x10], xmm0
mov r8, qword [r12 + 0x10]
mov qword [rdx + 8], rcx
mov rcx, qword [r12 + 0x18]
mov qword [rsi + 0x18], rdi
lea rdi, [r8 + 1]
add qword [rax], 1
mov qword [rsi + 0x20], rax
mov rax, qword [r12 + 0x20]
cmp rdi, rax
jg 0x140045803
sar rax, 1
cmp rdi, rax
jge 0x1400458f0
test rdi, rdi
je 0x140045880
mov rax, rdi
sar rax, 3
lea r9, [r8 + rax + 7]
and r9, 0xfffffffffffffffc
lea rdx, [r9*8]
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x30], r8
call qword [sym.imp.python311.dll_PyMem_Realloc]
mov r8, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
test rax, rax
mov rcx, rax
je 0x140045928
mov qword [r12 + 0x18], rax
mov qword [r12 + 0x10], rdi
mov qword [r12 + 0x20], r9
mov rdi, qword [rbx]
mov qword [rcx + r8*8], rsi
test rdi, rdi
jne 0x1400456cc
mov rax, r12
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor edx, edx
xor r9d, r9d
jmp 0x140045820
mov rcx, qword [rsp + 0x48]
mov rdx, rdi
call qword [sym.imp.python311.dll_PyUnicode_Concat]
sub qword [rdi], 1
mov rsi, rax
jne 0x1400458b1
mov rax, qword [rdi + 8]
mov rcx, rdi
call qword [rax + 0x30]
mov rdi, rsi
jmp 0x14004574f
mov rcx, qword [sym.imp.python311.dll_PyList_Type]
call fcn.140001dc0
mov r12, rax
jmp 0x14004562a
mov rcx, rdi
call qword [sym.imp.python311.dll_PyUnicode_FromString]
mov rdi, rax
jmp 0x14004573d
mov qword [r12 + 0x10], rdi
jmp 0x140045855
mov rcx, qword [sym.imp.python311.dll_PyTuple_Type]
mov edx, 2
call fcn.140017e60
mov rsi, rax
jmp 0x140045783
xor r12d, r12d
jmp 0x140045865
call qword [sym.imp.python311.dll_PyErr_NoMemory]
jmp 0x1400456c0