Function at 0x140045d20
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 [0x140070618], 0
mov r14, rcx
mov rbp, rdx
mov rsi, r8
je 0x140045db8
lea rdx, [0x140063e7a]
mov rcx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x140046790
mov rbx, qword [0x140070610]
jmp 0x140045d6d
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 0x140045d68
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.1400442e0
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 [0x140070610], r8
cmp r12, 0x2e
jbe 0x14004642e
test r8b, 7
je 0x140046830
mov ecx, 0xffffffff
lea r13, [0x140065f80]
jmp 0x140045e2a
test r8b, 7
je 0x1400467f8
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 0x140045e20
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, [0x140063f80]
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 0x140045e88
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 0x1400466db
mov ecx, eax
xor al, byte [r8]
lea rdx, [0x140065f80]
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 0x1400466ce
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 0x1400466ce
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 0x1400466ce
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 0x1400466ce
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 0x140046779
mov ecx, eax
xor al, byte [r8]
lea rdx, [0x140065f80]
movzx eax, al
shr ecx, 8
xor ecx, dword [rdx + rax*4]
mov eax, ecx
cmp r12, 1
je 0x140046779
xor al, byte [r8 + 1]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
cmp r12, 2
je 0x140046779
xor al, byte [r8 + 2]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
cmp r12, 3
je 0x140046779
xor al, byte [r8 + 3]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
cmp r12, 4
je 0x140046779
xor al, byte [r8 + 4]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
cmp r12, 5
je 0x140046779
xor al, byte [r8 + 5]
shr ecx, 8
movzx eax, al
xor ecx, dword [rdx + rax*4]
mov eax, ecx
cmp r12, 6
je 0x140046779
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 0x140046866
mov byte [0x140070618], 1
jmp 0x140045d42
cmp byte [0x140070608], 0
jne 0x140045d59
mov rbx, qword [sym.imp.python311.dll_PyDict_New]
call rbx
mov qword [0x140070660], rax
call rbx
mov qword [0x140070658], rax
call rbx
mov qword [0x140070650], rax
call rbx
mov qword [0x140070690], rax
call rbx
mov qword [0x140070688], rax
call rbx
mov qword [0x140070680], rax
call rbx
mov qword [0x140070670], rax
call rbx
mov byte [0x140070608], 1
mov qword [0x140070668], rax
jmp 0x140045d59
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 0x140045e4e
xor edx, edx
xor r9d, r9d
xor r10d, r10d
jmp 0x14004614a
movabs rax, 0xcccccccccccccccd
mov ecx, 0xffffffff
lea r13, [0x140065f80]
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 0x14004681a
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 0x140046bf0
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 0x140046b90
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, [0x140063e84]
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 [0x140067790]
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 0x140046973
mov rbp, qword [rax]
mov rdi, qword [rbx]
lea r13, str.__main__
test rdi, rdi
jne 0x14004699c
jmp 0x140046b35
mov rdi, qword [rbx]
test rdi, rdi
je 0x140046b35
mov eax, dword [rbx + 0x18]
test al, 0x10
je 0x1400469a9
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 0x140046990
mov rdx, r13
mov rcx, rdi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x140046990
cmp byte [rdi + rsi], 0
je 0x140046990
lea rsi, [rdi + rsi + 1]
mov edx, 0x2e
mov rcx, rsi
call sub.msvcrt.dll_strchr
test rax, rax
jne 0x140046990
cmp qword [r14 + 0x10], 0
je 0x140046ba8
mov rcx, rsi
call qword [sym.imp.python311.dll_PyUnicode_FromString]
mov rdi, rax
mov rcx, qword [rsp + 0x48]
call fcn.140003030
test eax, eax
jne 0x140046b60
mov rax, qword [r15 + 0x1f8]
mov rax, qword [rax + 0x10]
mov rsi, qword [rax + 0xe20]
test rsi, rsi
je 0x140046bd0
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 0x140046ad3
sar rax, 1
cmp rdi, rax
jge 0x140046bc0
test rdi, rdi
je 0x140046b50
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 0x140046bf8
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 0x14004699c
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 0x140046af0
mov rcx, qword [rsp + 0x48]
mov rdx, rdi
call qword [sym.imp.python311.dll_PyUnicode_Concat]
sub qword [rdi], 1
mov rsi, rax
jne 0x140046b81
mov rax, qword [rdi + 8]
mov rcx, rdi
call qword [rax + 0x30]
mov rdi, rsi
jmp 0x140046a1f
mov rcx, qword [sym.imp.python311.dll_PyList_Type]
call fcn.1400019e0
mov r12, rax
jmp 0x1400468fa
mov rcx, rdi
call qword [sym.imp.python311.dll_PyUnicode_FromString]
mov rdi, rax
jmp 0x140046a0d
mov qword [r12 + 0x10], rdi
jmp 0x140046b25
mov rcx, qword [sym.imp.python311.dll_PyTuple_Type]
mov edx, 2
call fcn.140017860
mov rsi, rax
jmp 0x140046a53
xor r12d, r12d
jmp 0x140046b35
call qword [sym.imp.python311.dll_PyErr_NoMemory]
jmp 0x140046990