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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov eax, dword [ebp + 8]
mov cl, 0x79
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0x10d
mov byte [esp + 0x77], 0xed
mov dl, byte [esp + 0x77]
mov ch, dl
xor ch, 0xc4
mov byte [esp + 0x6f], ch
mov byte [esp + 0x6e], 0xf1
mov ch, byte [esp + 0x77]
mov dh, byte [esp + 0x6e]
sub cl, ch
cmp cl, dh
mov dword [esp + 0x24], eax
mov byte [esp + 0x23], dl
jae 0x4026e7
mov eax, dword [esp + 0x24]
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
xor ebx, ebx
mov esi, 0x1ec0
sub esi, ecx
mov ecx, ebx
sbb ecx, edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ebx
call fcn.004028e0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x38], eax
mov eax, dword [eax + 0xc]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x14]
test al, al
jne 0x4028c5
jmp 0x402744
mov eax, dword [esp + 0x44]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
add eax, 0xc
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [esp + 0x58], eax
mov dword [esp + 0x78], 0x3d65
mov al, byte [esp + 0x77]
add al, 0x9b
mov cl, byte [esp + 0x6f]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x5c], edx
mov ah, byte [esp + 0x23]
or ah, 0x94
mov byte [esp + 0x93], ah
mov edx, dword [esp + 0x78]
sub edx, dword [esp + 0x78]
mov dword [esp + 0x78], edx
cmp cl, al
ja 0x4027de
mov ax, 0x16fb
movsd xmm0, qword [esp + 0x80]
mov ecx, dword [esp + 0x34]
movsd qword [esp + 0x80], xmm0
sub ax, word [esp + 0x7e]
mov edx, dword [esp + 0x5c]
mov word [esp + 0x7e], ax
cmp edx, ecx
je 0x4028c5
mov al, 0xcb
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x3c], ecx
mov byte [esp + 0x4f], 0x80
cmp al, byte [esp + 0x4f]
je 0x4027c9
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x78]
imul ecx, dword [esp + 0x78]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x40], eax
mov dl, byte [esp + 0x23]
or dl, 0xc0
mov byte [esp + 0x93], dl
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x18]
mov ecx, dword [esp + 0x70]
cmp eax, dword [ecx + 0x34]
jne 0x402845
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
xor edx, edx
mov esi, 0x1e9a
sub esi, eax
sbb edx, ecx
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], edx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x50], eax
jmp 0x4028cd
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
xor eax, 0x5f3c
mov edx, dword [esp + 0x58]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], eax
mov esi, dword [esp + 0x78]
mov edx, dword [edx]
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x8c]
xor esi, 0x6437
mov dword [esp + 0x48], edx
sub eax, esi
setae bl
sub ecx, edi
setae bh
mov byte [esp + 0x13], bh
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov byte [esp + 7], bl
je 0x4028aa
mov al, byte [esp + 0x13]
mov byte [esp + 7], al
mov al, byte [esp + 7]
test al, al
jne 0x402769
jmp 0x4028b8
mov eax, dword [esp + 0x48]
mov dword [esp + 0x58], eax
jmp 0x402769
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x50]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret