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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x43b078
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 0x409abf
xor al, al
jmp 0x409d84
mov edi, dword [esp + 0x58]
cmp edi, ebp
je 0x409d82
mov ebx, dword [esp + 0x5c]
cmp ebx, ebp
je 0x409d82
test bl, 1
je 0x409ae1
dec ebx
mov dword [esp + 0x5c], ebx
cmp ebx, ebp
jne 0x409aec
xor al, al
jmp 0x409d84
call fcn.00418170
lea ecx, [esp + 0x30]
mov byte [esp + 0x13], al
mov dword [esp + 0x18], ebp
mov byte [esp + 0x12], 1
call fcn.00407630
cmp ebx, ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x14], ebp
jbe 0x409d6b
mov ebx, dword [esp + 0x60]
mov al, byte [esi + 0x81]
test al, al
je 0x409b80
mov edx, dword [esp + 0x5c]
lea eax, [ebp + 3]
cmp edx, eax
jb 0x409b80
cmp byte [edi + ebp], 0xfd
jne 0x409b80
cmp byte [edi + ebp + 1], 0xef
jne 0x409b80
add ebp, 2
xor eax, eax
mov dword [esp + 0x14], ebp
mov al, byte [edi + ebp]
cmp eax, 6
jae 0x409d61
inc ebp
mov dword [esp + 0x14], ebp
lea ecx, [eax + ebp]
cmp edx, ecx
mov dword [esp + 0x60], ecx
jb 0x409d61
add ebp, edi
push eax
push ebp
mov ecx, ebx
call fcn.00407f30
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x14], ecx
mov ebp, ecx
jmp 0x409d61
mov al, byte [esp + 0x13]
test al, al
je 0x409bb2
mov al, byte [edi + ebp + 1]
test al, al
jne 0x409bb2
mov cl, byte [edi + ebp]
lea eax, [edi + ebp]
cmp cl, 0x80
jae 0x409bb2
push 1
push eax
mov ecx, ebx
call fcn.00407f30
mov dword [esp + 0x18], 1
jmp 0x409d5a
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.00418610
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x409d49
cmp byte [edi], 0
jne 0x409bf5
mov ecx, dword [esp + 0x58]
mov al, byte [ecx + ebp + 1]
test al, al
jne 0x409bf5
push 0
mov ecx, ebx
call fcn.00407ee0
jmp 0x409d56
mov eax, dword [esi + 8]
test eax, eax
je 0x409d42
mov cl, byte [esi + 0x81]
test cl, cl
je 0x409d39
cmp eax, 1
jne 0x409c34
mov eax, dword [esi + 0x10]
test eax, eax
je 0x409d42
lea edx, [esi + 0x14]
push eax
push edx
mov ecx, ebx
call fcn.00407f30
mov byte [esp + 0x12], 0
jmp 0x409d56
cmp eax, 7
jne 0x409c7a
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.0040b750
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 0x409d56
cmp eax, 2
jne 0x409d39
lea ecx, [esp + 0x30]
call fcn.00407520
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.0040b750
lea ecx, [esp + 0x30]
call fcn.00419e00
test eax, eax
je 0x409d1d
lea ecx, [esp + 0x30]
call fcn.00419e00
push 0x26
mov ecx, ebx
mov ebp, eax
call fcn.00407ee0
push 0x23
mov ecx, ebx
call fcn.00407ee0
push 0x78
mov ecx, ebx
call fcn.00407ee0
xor edi, edi
test ebp, ebp
jle 0x409d10
push ebx
push 1
push edi
lea ecx, [esp + 0x3c]
call fcn.00407540
push eax
mov ecx, esi
call fcn.004093d0
inc edi
cmp edi, ebp
jl 0x409cf6
push 0x3b
mov ecx, ebx
call fcn.00407ee0
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 0x409d56
push ebx
push edi
mov ecx, esi
call fcn.00409440
mov byte [esp + 0x12], 0
jmp 0x409d56
push eax
lea eax, [esp + 0x28]
push eax
mov ecx, ebx
call fcn.00407f30
mov edi, dword [esp + 0x58]
add ebp, 2
mov dword [esp + 0x14], ebp
cmp ebp, dword [esp + 0x5c]
jb 0x409b1b
lea ecx, [esp + 0x30]
mov dword [esp + 0x4c], 0xffffffff
call fcn.00407c80
mov al, byte [esp + 0x12]
jmp 0x409d84
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