Function at 0x409920
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [rsp + 0x78]
mov rcx, qword [rsp + 0x198]
cmp eax, dword [rcx + 0x18]
jae 0x409755
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x488]
mov edx, dword [rsp + 0x78]
mov ecx, dword [rcx + rdx*4]
add rax, rcx
mov qword [rsp + 0x478], rax
mov rax, qword [rsp + 0x478]
mov ecx, dword [rsp + 0x210]
mov qword [rsp + 0x310], rax
mov dword [rsp + 0x22c], ecx
mov dword [rsp + 0x100], 0
mov rcx, qword [rsp + 0x310]
call fcn.004090c3
mov dword [rsp + 0x228], eax
mov dword [rsp + 0x98], 0
mov eax, dword [rsp + 0x98]
cmp eax, dword [rsp + 0x228]
jae 0x409705
mov rax, qword [rsp + 0x310]
movsxd rcx, dword [rsp + 0x98]
mov al, byte [rax + rcx]
mov byte [rsp + 0x5a], al
mov eax, dword [rsp + 0x22c]
mov ecx, dword [rsp + 0x100]
mov dword [rsp + 0x284], eax
mov dword [rsp + 0x280], ecx
mov dword [rsp + 0x144], 0
mov dword [rsp + 0x140], 0
mov eax, dword [rsp + 0x140]
cmp eax, dword [rsp + 0x284]
jae 0x4096da
mov eax, dword [rsp + 0x280]
add eax, dword [rsp + 0x144]
mov dword [rsp + 0x144], eax
mov eax, dword [rsp + 0x140]
add eax, 1
mov dword [rsp + 0x140], eax
jmp 0x4096a2
mov eax, dword [rsp + 0x144]
movzx ecx, byte [rsp + 0x5a]
add eax, ecx
mov dword [rsp + 0x100], eax
mov eax, dword [rsp + 0x98]
add eax, 1
mov dword [rsp + 0x98], eax
jmp 0x409645
mov eax, dword [rsp + 0x100]
cmp eax, dword [rsp + 0x20c]
jne 0x409745
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x480]
mov rdx, qword [rsp + 0x490]
mov esi, dword [rsp + 0x78]
js 0x409741
mov bh, 0x14
jb 0x4096c1
or al, 0x91
add rax, rcx
mov qword [rsp + 0x2f8], rax
jmp 0x409761
mov eax, dword [rsp + 0x78]
add eax, 1
mov dword [rsp + 0x78], eax
jmp 0x4095c6
mov qword [rsp + 0x2f8], 0
mov rax, qword [rsp + 0x2f8]
mov qword [rsp + 0x380], rax
mov rax, qword [rsp + 0x380]
mov rdx, qword [rsp + 0x150]
xor ecx, ecx
mov r8d, 0x104
call rax
mov dword [rsp + 0x1c4], eax
mov rax, qword [rsp + 0x38]
mov rax, qword [rax]
mov qword [rsp + 0x2b0], rax
mov eax, dword [rsp + 0x1c4]
mov dword [rsp + 0x54], eax
mov rax, qword [rsp + 0x150]
mov ecx, dword [rsp + 0x54]
sub ecx, 1
mov ecx, ecx
movzx eax, word [rax + rcx*2]
mov rcx, qword [rsp + 0x38]
mov ecx, dword [rcx + 0x4c]
movzx ecx, cx
cmp eax, ecx
je 0x4097f0
mov rax, qword [rsp + 0x150]
mov ecx, dword [rsp + 0x54]
mov word [rax + rcx*2], 0
mov eax, dword [rsp + 0x54]
add eax, 0xffffffff
mov dword [rsp + 0x54], eax
jmp 0x4097ad
mov dword [rsp + 0x90], 0
mov rax, qword [rsp + 0x2b0]
mov ecx, dword [rsp + 0x90]
movsx eax, byte [rax + rcx]
cmp eax, 0
je 0x409854
mov rax, qword [rsp + 0x2b0]
mov ecx, dword [rsp + 0x90]
movsx eax, byte [rax + rcx]
mov rcx, qword [rsp + 0x150]
mov edx, dword [rsp + 0x54]
and al, 0x54
mov word [rcx + rdx*2], ax
mov eax, dword [rsp + 0x54]
add eax, 1
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x90]
add eax, 1
mov dword [rsp + 0x90], eax
jmp 0x4097fb
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x34]
mov rcx, qword [rsp + 0x38]
mov ecx, dword [rcx + 0x50]
mov rdx, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0x38]
mov esi, dword [rsi + 0x54]
mov dword [rsp + 0x204], eax
mov dword [rsp + 0x200], ecx
mov qword [rsp + 0xd0], rdx
mov dword [rsp + 0x1fc], esi
add byte [rax - 0x75], cl
test byte [rax + rdx*8], ah
add byte [rax], al
add byte [rax - 0x75], cl
mov word [rax + rdx*8], fs
add byte [rax], al
add byte [rax + 0x63], cl
cmp al, 0x48
add eax, ecx
mov qword [rsp + 0x470], rax
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x470]
mov edx, dword [rsp + 0x1fc]
mov ecx, dword [rcx + rdx*8 + 0x88]
add rax, rcx
enter 0xffffffffffff8948, 0xffffffffffffff84
and al, 0x90
add dword [rax], eax
add byte [rax - 0x75], cl
test byte [rax + rdx*8], ah
add byte [rax], al
add byte [rax - 0x75], cl
mov word [rax + rdx*4], fs
add dword [rax], eax
add byte [rbx + 0x1482449], cl
enter 0xffffffffffff8948, 0xffffffffffffff84
and al, 0x68
add al, 0
add byte [rax - 0x75], cl
test byte [rax + rdx*8], ah
add byte [rax], al
add byte [rax - 0x75], cl
mov ecx, dword [rsp + 0x190]
mov ecx, dword [rcx + 0x20]
add rax, rcx
mov qword [rsp + 0x460], rax
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x190]
mov ecx, dword [rcx + 0x1c]
add rax, rcx
mov qword [rsp + 0x458], rax
mov dword [rsp + 0x74], 0
mov eax, dword [rsp + 0x74]
mov rcx, qword [rsp + 0x190]
cmp eax, dword [rcx + 0x18]
jae 0x409aca
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x460]
mov edx, dword [rsp + 0x74]
mov ecx, dword [rcx + rdx*4]
add rax, rcx
mov qword [rsp + 0x450], rax
mov rax, qword [rsp + 0x450]
mov ecx, dword [rsp + 0x204]
mov qword [rsp + 0x318], rax
mov dword [rsp + 0x234], ecx
mov dword [rsp + 0x104], 0
mov rcx, qword [rsp + 0x318]
call fcn.004090c3
mov dword [rsp + 0x230], eax
mov dword [rsp + 0x9c], 0
mov eax, dword [rsp + 0x9c]
cmp eax, dword [rsp + 0x230]
jae 0x409a7a
mov rax, qword [rsp + 0x318]
movsxd rcx, dword [rsp + 0x9c]
mov al, byte [rax + rcx]
mov byte [rsp + 0x5b], al
mov eax, dword [rsp + 0x234]
mov ecx, dword [rsp + 0x104]
mov dword [rsp + 0x27c], eax
mov dword [rsp + 0x278], ecx
mov dword [rsp + 0x13c], 0
mov dword [rsp + 0x138], 0
mov eax, dword [rsp + 0x138]
cmp eax, dword [rsp + 0x27c]
jae 0x409a4f
mov eax, dword [rsp + 0x278]
add eax, dword [rsp + 0x13c]
mov dword [rsp + 0x13c], eax
mov eax, dword [rsp + 0x138]
add eax, 1
mov dword [rsp + 0x138], eax
jmp 0x409a17
mov eax, dword [rsp + 0x13c]
movzx ecx, byte [rsp + 0x5b]
add eax, ecx
mov dword [rsp + 0x104], eax
mov eax, dword [rsp + 0x9c]
add eax, 1
mov dword [rsp + 0x9c], eax
jmp 0x4099ba
mov eax, dword [rsp + 0x104]
cmp eax, dword [rsp + 0x200]
jne 0x409aba
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x458]
mov rdx, qword [rsp + 0x468]
mov esi, dword [rsp + 0x74]
movzx edx, word [rdx + rsi*2]
mov ecx, dword [rcx + rdx*4]
add rax, rcx
mov qword [rsp + 0x2f0], rax
jmp 0x409ad6
mov eax, dword [rsp + 0x74]
add eax, 1
mov dword [rsp + 0x74], eax
jmp 0x40993b
mov qword [rsp + 0x2f0], 0
mov rax, qword [rsp + 0x2f0]
mov qword [rsp + 0x378], rax
mov r10, qword [rsp + 0x378]
mov rcx, qword [rsp + 0x38]
mov esi, dword [rcx + 0x24]
mov rcx, qword [rsp + 0x38]
mov eax, dword [rcx + 0x3c]
mov rcx, qword [rsp + 0x38]
mov r8d, dword [rcx + 0x64]
mov rcx, qword [rsp + 0x38]
mov edx, dword [rcx + 0x18]
mov rcx, qword [rsp + 0x150]
xor r9d, r9d
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x28], esi
and al, 0x28
mov qword [rsp + 0x30], 0
call r10
mov qword [rsp + 0x2a8], rax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x34]
mov rcx, qword [rsp + 0x38]
mov ecx, dword [rcx + 0x38]
mov rdx, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0x38]
mov esi, dword [rsi + 0x54]
mov dword [rsp + 0x1f8], eax
mov dword [rsp + 0x1f4], ecx
mov qword [rsp + 0xc8], rdx
mov dword [rsp + 0x1f0], esi
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xc8]
movsxd rcx, dword [rcx + 0x3c]
add rax, rcx
mov qword [rsp + 0x448], rax
add byte [rax], al
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x448]
mov edx, dword [rsp + 0x1f0]
mov ecx, dword [rcx + rdx*8 + 0x88]
add rax, rcx
mov qword [rsp + 0x188], rax
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x188]
mov ecx, dword [rcx + 0x24]
add rax, rcx
mov qword [rsp + 0x440], rax
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x188]
mov ecx, dword [rcx + 0x20]
add rax, rcx
mov qword [rsp + 0x438], rax
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x188]
mov ecx, dword [rcx + 0x1c]
add rax, rcx
mov qword [rsp + 0x430], rax
and al, 0x30
add al, 0
add bh, al
and al, 0x70
add byte [rax], al
add byte [rax], al
mov eax, dword [rsp + 0x70]
mov rcx, qword [rsp + 0x188]
cmp eax, dword [rcx + 0x18]
jae 0x409dac
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x438]
add byte [rax], al
mov edx, dword [rsp + 0x70]
mov ecx, dword [rcx + rdx*4]
add rax, rcx
mov qword [rsp + 0x428], rax
mov rax, qword [rsp + 0x428]
mov ecx, dword [rsp + 0x1f8]
add dword [rax], eax
add byte [rax - 0x77], cl
test byte [rax + riz], ah
add eax, dword [rax]
add byte [rcx + 0x23c248c], cl
add byte [rax], al
mov dword [rsp + 0x108], 0
mov rcx, qword [rsp + 0x320]
call fcn.004090c3
mov dword [rsp + 0x238], eax
add bh, al
test byte [rax + riz*4], ah
add byte [rax], al
add byte [rax], al
add byte [rax], al
invalid
mov eax, dword [rsp + 0xa0]
cmp eax, dword [rsp + 0x238]
jae 0x409d5c
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rsp + 0xa0]
mov eax, dword [rsp + 0x108]
cmp eax, dword [rsp + 0x1f4]
jne 0x409d9c
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x430]
mov rdx, qword [rsp + 0x440]
mov esi, dword [rsp + 0x70]
movzx edx, word [rdx + rsi*2]
mov ecx, dword [rcx + rdx*4]
add rax, rcx
mov qword [rsp + 0x2e8], rax
jmp 0x409db8
mov eax, dword [rsp + 0x70]
mov qword [rsp + 0x2e8], 0
mov rax, qword [rsp + 0x2e8]