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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x43b358
push eax
mov dword fs:[0], esp
sub esp, 0x34
push ebx
push ebp
push esi
mov esi, ecx
mov ecx, dword [esp + 0x50]
xor ebp, ebp
cmp ecx, ebp
push edi
jne 0x409daf
xor al, al
jmp 0x40a074
mov edi, dword [esp + 0x58]
cmp edi, ebp
je 0x40a072
mov ebx, dword [esp + 0x5c]
cmp ebx, ebp
je 0x40a072
test bl, 1
je 0x409dd1
dec ebx
mov dword [esp + 0x5c], ebx
cmp ebx, ebp
jne 0x409ddc
xor al, al
jmp 0x40a074
call fcn.00418490
lea ecx, [esp + 0x30]
mov byte [esp + 0x13], al
mov dword [esp + 0x18], ebp
mov byte [esp + 0x12], 1
call fcn.004078f0
cmp ebx, ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x14], ebp
jbe 0x40a05b
mov ebx, dword [esp + 0x60]
mov al, byte [esi + 0x81]
test al, al
je 0x409e70
mov edx, dword [esp + 0x5c]
lea eax, [ebp + 3]
cmp edx, eax
jb 0x409e70
cmp byte [edi + ebp], 0xfd
jne 0x409e70
cmp byte [edi + ebp + 1], 0xef
jne 0x409e70
add ebp, 2
xor eax, eax
mov dword [esp + 0x14], ebp
mov al, byte [edi + ebp]
cmp eax, 6
jae 0x40a051
inc ebp
mov dword [esp + 0x14], ebp
lea ecx, [eax + ebp]
cmp edx, ecx
mov dword [esp + 0x60], ecx
jb 0x40a051
add ebp, edi
push eax
push ebp
mov ecx, ebx
call fcn.00408220
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x14], ecx
mov ebp, ecx
jmp 0x40a051
mov al, byte [esp + 0x13]
test al, al
je 0x409ea2
mov al, byte [edi + ebp + 1]
test al, al
jne 0x409ea2
mov cl, byte [edi + ebp]
lea eax, [edi + ebp]
cmp cl, 0x80
jae 0x409ea2
push 1
push eax
mov ecx, ebx
call fcn.00408220
mov dword [esp + 0x18], 1
jmp 0x40a04a
mov ecx, dword [esp + 0x54]
lea edx, [esp + 0x18]
lea eax, [esp + 0x24]
push edx
add edi, ebp
push eax
push 2
push edi
call fcn.00418930
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x40a039
cmp byte [edi], 0
jne 0x409ee5
mov ecx, dword [esp + 0x58]
mov al, byte [ecx + ebp + 1]
test al, al
jne 0x409ee5
push 0
mov ecx, ebx
call fcn.004081d0
jmp 0x40a046
mov eax, dword [esi + 8]
test eax, eax
je 0x40a032
mov cl, byte [esi + 0x81]
test cl, cl
je 0x40a029
cmp eax, 1
jne 0x409f24
mov eax, dword [esi + 0x10]
test eax, eax
je 0x40a032
lea edx, [esi + 0x14]
push eax
push edx
mov ecx, ebx
call fcn.00408220
mov byte [esp + 0x12], 0
jmp 0x40a046
cmp eax, 7
jne 0x409f6a
mov ebp, dword [esi + 0x78]
mov eax, dword [esi + 0x7c]
push ebx
push 2
push edi
push ebp
push 0x4b0
mov ecx, esi
mov dword [esp + 0x74], eax
mov dword [esi + 8], 0
call fcn.0040ba40
mov ecx, dword [esp + 0x60]
mov dword [esi + 0x78], ebp
mov ebp, dword [esp + 0x14]
mov dword [esi + 8], 7
mov dword [esi + 0x7c], ecx
mov byte [esp + 0x12], 0
jmp 0x40a046
cmp eax, 2
jne 0x40a029
lea ecx, [esp + 0x30]
call fcn.004077e0
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x78]
mov ecx, dword [esi + 0x7c]
mov dword [esp + 0x60], edx
lea edx, [esp + 0x30]
mov dword [esp + 0x20], ecx
push edx
push 2
push edi
push eax
push 0x4b0
mov ecx, esi
mov dword [esp + 0x30], eax
mov dword [esi + 8], 0
call fcn.0040ba40
lea ecx, [esp + 0x30]
call fcn.004070f0
test eax, eax
je 0x40a00d
lea ecx, [esp + 0x30]
call fcn.004070f0
push 0x26
mov ecx, ebx
mov ebp, eax
call fcn.004081d0
push 0x23
mov ecx, ebx
call fcn.004081d0
push 0x78
mov ecx, ebx
call fcn.004081d0
xor edi, edi
test ebp, ebp
jle 0x40a000
push ebx
push 1
push edi
lea ecx, [esp + 0x3c]
call fcn.00407800
push eax
mov ecx, esi
call fcn.004096c0
inc edi
cmp edi, ebp
jl 0x409fe6
push 0x3b
mov ecx, ebx
call fcn.004081d0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esi + 8], eax
mov dword [esi + 0x78], ecx
mov dword [esi + 0x7c], edx
mov byte [esp + 0x12], 0
jmp 0x40a046
push ebx
push edi
mov ecx, esi
call fcn.00409730
mov byte [esp + 0x12], 0
jmp 0x40a046
push eax
lea eax, [esp + 0x28]
push eax
mov ecx, ebx
call fcn.00408220
mov edi, dword [esp + 0x58]
add ebp, 2
mov dword [esp + 0x14], ebp
cmp ebp, dword [esp + 0x5c]
jb 0x409e0b
lea ecx, [esp + 0x30]
mov dword [esp + 0x4c], 0xffffffff
call fcn.00407f40
mov al, byte [esp + 0x12]
jmp 0x40a074
mov al, 1
mov ecx, dword [esp + 0x44]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x40
ret 0x10