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

Disassembly:
sub esp, 0x114
push ebx
mov ebx, dword [esp + 0x11c]
push ebp
mov ebp, dword [esp + 0x124]
push esi
push edi
push ebp
push ebx
call fcn.00402070
mov edi, eax
add esp, 8
cmp edi, 0xffffffff
je 0x40276f
mov edx, dword [esp + 0x130]
mov eax, 0x2e8ba2e9
imul edx
sar edx, 5
mov eax, edx
xor ecx, ecx
shr eax, 0x1f
add edx, eax
lea eax, [edi*8]
sub eax, edi
mov ebx, 8
mov byte [esp + 0x18], cl
mov byte [esp + 0x19], cl
mov byte [esp + 0x1a], cl
mov byte [esp + 0x1b], cl
mov byte [esp + 0x1c], 0x31
mov byte [esp + 0x1d], 2
mov byte [esp + 0x1f], cl
mov byte [esp + 0x10], 0x15
mov byte [esp + 0x11], cl
mov byte [esp + 0x12], cl
mov byte [esp + 0x13], cl
mov byte [esp + 0x14], bl
mov byte [esp + 0x15], cl
mov dword [esp + 0x20], 0xff
mov esi, 6
lea eax, [eax*4 + 0x467728]
cmp edx, dword [eax]
jne 0x402738
mov dword [esp + 0x20], esi
dec esi
sub eax, 4
cmp esi, ecx
jge 0x402730
mov cl, byte [esp + 0x20]
lea edx, [esp + 0x18]
push ebx
lea eax, [esp + 0x14]
mov byte [esp + 0x22], cl
mov ecx, dword [esp + 0x12c]
push edx
push eax
push ebp
push ecx
call fcn.004016b0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov esi, dword [esp + 0x130]
mov eax, 0x2e8ba2e9
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x134]
sub eax, 5
je 0x4027f8
dec eax
je 0x4027c2
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push esi
sar esi, 8
push esi
push ecx
push 0xbb
push ebp
push ebx
call fcn.00403ca0
add esp, 0x40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
cmp edx, 0x18
setle al
xor ecx, ecx
dec eax
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
and eax, 0xff
push ecx
push ecx
push eax
push eax
push 0xc
push 0xbb
push ebp
push ebx
call fcn.00403ca0
add esp, 0x40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
cmp edx, 0x30
jle 0x402802
mov edx, 0x30
mov eax, 6
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
push ecx
mov eax, 7
xor ecx, ecx
push 4
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
push ecx
mov eax, 9
push ecx
push ecx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
push ecx
mov ebx, 8
mov eax, 0xa
push ecx
push ecx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
mov dl, byte [esp + edx*4 + 0x40]
mov eax, dword [esp + 0x148]
push ecx
push ecx
push ecx
push edx
push ecx
push 0xf1
push ebp
push eax
call fcn.00403ca0
add esp, 0x40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret