Function at 0x14009f3a0
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 [0x1400d1ef0], 0
mov r14, rcx
mov rbp, rdx
mov rsi, r8
je 0x14009f438
lea rdx, [0x1400c2892]
mov rcx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x14009fe10
mov rbx, qword [0x1400d1ee8]
jmp 0x14009f3ed
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 0x14009f3e8
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.14009d690
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 [0x1400d1ee8], r8
cmp r12, 0x2e
jbe 0x14009faae
test r8b, 7
je 0x14009feb0
mov ecx, 0xffffffff
lea r13, [0x1400c49a0]
jmp 0x14009f4aa
test r8b, 7
je 0x14009fe78
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 0x14009f4a0
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, [0x1400c29a0]
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 0x14009f508
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 0x14009fd5b
mov ecx, eax
xor al, byte [r8]
lea rdx, [0x1400c49a0]
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 0x14009fd4e
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 0x14009fd4e
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 0x14009fd4e
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 0x14009fd4e
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 0x14009fdf9
mov ecx, eax
xor al, byte [r8]
lea rdx, [0x1400c49a0]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
cmp r12, 1
je 0x14009fdf9
xor al, byte [r8 + 1]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
cmp r12, 2
je 0x14009fdf9
xor al, byte [r8 + 2]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
cmp r12, 3
je 0x14009fdf9
xor al, byte [r8 + 3]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
cmp r12, 4
je 0x14009fdf9
xor al, byte [r8 + 4]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
cmp r12, 5
je 0x14009fdf9
xor al, byte [r8 + 5]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
cmp r12, 6
je 0x14009fdf9
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 0x14009fee6
mov byte [0x1400d1ef0], 1
jmp 0x14009f3c2
cmp byte [0x1400d1ee0], 0
jne 0x14009f3d9
mov rbx, qword [sym.imp.python312.dll_PyDict_New]
call rbx
mov qword [0x1400d1f38], rax
call rbx
mov qword [0x1400d1f30], rax
call rbx
mov qword [0x1400d1f28], rax
call rbx
mov qword [0x1400d1f68], rax
call rbx
mov qword [0x1400d1f60], rax
call rbx
mov qword [0x1400d1f58], rax
call rbx
mov qword [0x1400d1f48], rax
call rbx
mov byte [0x1400d1ee0], 1
mov qword [0x1400d1f40], rax
jmp 0x14009f3d9
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 0x14009f4ce
xor edx, edx
xor r9d, r9d
xor r10d, r10d
jmp 0x14009f7ca
movabs rax, 0xcccccccccccccccd
mov ecx, 0xffffffff
lea r13, [0x1400c49a0]
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 0x14009fe9a
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.s__f_
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.python312.dll_PyArg_ParseTupleAndKeywords]
test eax, eax
je 0x1400a0268
mov r15, qword [sym.imp.python312.dll__PyThreadState_GetCurrent]
call r15
mov rdx, qword [rax + 0x10]
mov eax, dword [rdx + 0x42108]
test eax, eax
je 0x1400a0200
sub eax, 1
mov dword [rdx + 0x42108], eax
cdqe
mov r12, qword [rdx + rax*8 + 0x41e88]
mov qword [r12], 1
mov qword [r12 + 0x18], 0
lea rbp, [0x1400c289c]
mov qword [r12 + 0x10], 0
mov qword [r12 + 0x20], 0
call r15
lea rcx, [r12 - 0x10]
mov rax, qword [rax + 0x10]
mov rdx, qword [rax + 0xd0]
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 [0x1400c6bd0]
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 0x14009ffeb
mov rbp, qword [rax]
mov rdi, qword [rbx]
lea r13, [0x1400c28ac]
test rdi, rdi
jne 0x1400a000c
jmp 0x1400a01aa
mov rdi, qword [rbx]
test rdi, rdi
je 0x1400a01aa
mov eax, dword [rbx + 0x18]
test al, 0x10
je 0x1400a0019
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 0x1400a0000
mov rdx, r13
mov rcx, rdi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x1400a0000
cmp byte [rdi + rsi], 0
je 0x1400a0000
lea rsi, [rdi + rsi + 1]
mov edx, 0x2e
mov rcx, rsi
call sub.msvcrt.dll_strchr
test rax, rax
jne 0x1400a0000
cmp qword [r14 + 0x10], 0
je 0x1400a0218
mov rcx, rsi
call qword [sym.imp.python312.dll_PyUnicode_FromString]
mov rdi, rax
mov rcx, qword [rsp + 0x48]
call fcn.1400097a0
test eax, eax
jne 0x1400a01d0
call r15
mov rax, qword [rax + 0x10]
mov rsi, qword [rax + 0x41da0]
test rsi, rsi
je 0x1400a0248
mov rdx, qword [rsi + 0x18]
sub dword [rax + 0x41e3c], 1
mov qword [rax + 0x41da0], rdx
mov qword [rsi], 1
pxor xmm0, xmm0
movups xmmword [rsi + 0x18], xmm0
call r15
lea rcx, [rsi - 0x10]
mov rax, qword [rax + 0x10]
mov rdx, qword [rax + 0xd0]
mov rax, qword [rsi - 8]
mov r8, qword [rdx + 8]
and eax, 3
movq xmm0, rdx
or rax, r8
mov qword [r8], rcx
test byte [rbx - 0x10], 2
movq xmm2, rax
punpcklqdq xmm0, xmm2
movups xmmword [rsi - 0x10], xmm0
mov qword [rdx + 8], rcx
mov rdx, qword [sym.imp.python312.dll__Py_FalseStruct]
cmovne rdx, qword [sym.imp.python312.dll__Py_TrueStruct]
mov qword [rsi + 0x18], rdi
mov eax, dword [rdx]
add eax, 1
je 0x1400a0120
mov dword [rdx], eax
mov r8, qword [r12 + 0x10]
mov rax, qword [r12 + 0x20]
mov qword [rsi + 0x20], rdx
mov rcx, qword [r12 + 0x18]
lea rdi, [r8 + 1]
cmp rdi, rax
jg 0x1400a0148
sar rax, 1
cmp rdi, rax
jge 0x1400a0230
test rdi, rdi
je 0x1400a01c0
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.python312.dll_PyMem_Realloc]
mov r8, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
test rax, rax
mov rcx, rax
je 0x1400a0270
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 0x1400a000c
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 0x1400a0165
mov rdx, rdi
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.python312.dll_PyUnicode_Concat]
mov rdx, qword [rdi]
mov rsi, rax
test edx, edx
js 0x1400a01f1
sub rdx, 1
mov qword [rdi], rdx
je 0x1400a023a
mov rdi, rsi
jmp 0x1400a008f
mov rcx, qword [sym.imp.python312.dll_PyList_Type]
call fcn.140001a90
mov r12, rax
jmp 0x14009ff76
mov rcx, rdi
call qword [sym.imp.python312.dll_PyUnicode_FromString]
mov rdi, rax
jmp 0x1400a007d
mov qword [r12 + 0x10], rdi
jmp 0x1400a019a
mov rcx, rdi
call qword [sym.imp.python312.dll__Py_Dealloc]
jmp 0x1400a01f1
mov rcx, qword [sym.imp.python312.dll_PyTuple_Type]
mov edx, 2
call fcn.140077c90
mov rsi, rax
jmp 0x1400a00bf
xor r12d, r12d
jmp 0x1400a01aa
call qword [sym.imp.python312.dll_PyErr_NoMemory]
jmp 0x1400a0000