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

Disassembly:
sub esp, 0x8c
mov eax, dword [0x4282e0]
xor eax, esp
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x94]
push ebx
mov ebx, dword [esp + 0xa4]
push edi
mov edi, dword [esp + 0xa4]
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], ebx
cmp eax, 0x20
jae 0x408cdf
xor ecx, ecx
mov word [esp + eax + 0x50], cx
add eax, 2
cmp eax, 0x1e
jbe 0x4088f9
push ebp
mov ebp, dword [esp + 0xa4]
xor eax, eax
test ebp, ebp
je 0x40892d
movzx eax, word [edx + ecx*2]
inc word [esp + eax*2 + 0x54]
inc ecx
cmp ecx, ebp
jb 0x40891f
mov eax, dword [ebx]
xor ecx, ecx
push esi
push 0xf
inc ecx
xor edx, edx
pop esi
cmp word [esp + esi*2 + 0x58], dx
jne 0x408944
dec esi
cmp esi, ecx
jae 0x408938
cmp eax, esi
cmova eax, esi
test esi, esi
jne 0x40897a
mov byte [esp + 0x11], cl
xor eax, eax
mov ecx, dword [edi]
mov byte [esp + 0x10], 0x40
mov word [esp + 0x12], ax
mov eax, dword [esp + 0x10]
mov dword [ecx], eax
add dword [edi], 4
mov ecx, dword [edi]
mov dword [ecx], eax
add dword [edi], 4
mov dword [ebx], 1
jmp 0x408cba
mov edx, ecx
cmp esi, ecx
jbe 0x40898e
xor ebx, ebx
cmp word [esp + edx*2 + 0x58], bx
jne 0x40898e
inc edx
cmp edx, esi
jb 0x408982
cmp eax, edx
cmovb eax, edx
xor ebx, ebx
mov dword [esp + 0x20], eax
inc ebx
movzx eax, word [esp + ebx*2 + 0x58]
add ecx, ecx
sub ecx, eax
js 0x408cda
inc ebx
cmp ebx, 0xf
jbe 0x40899a
test ecx, ecx
jle 0x4089ca
cmp dword [esp + 0xa0], 0
je 0x408cda
cmp esi, 1
jne 0x408cda
xor eax, eax
push 2
mov word [esp + 0x7e], ax
pop ecx
mov ax, word [esp + ecx + 0x78]
add ax, word [esp + ecx + 0x58]
mov word [esp + ecx + 0x7a], ax
add ecx, 2
cmp ecx, 0x1e
jb 0x4089d4
xor eax, eax
mov ecx, eax
test ebp, ebp
je 0x408a1f
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x40]
movzx eax, word [edi + ecx*2]
test ax, ax
je 0x408a16
movzx eax, word [esp + eax*2 + 0x78]
mov word [ebx + eax*2], cx
movzx eax, word [edi + ecx*2]
inc word [esp + eax*2 + 0x78]
inc ecx
cmp ecx, ebp
jb 0x4089fb
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0xa0]
xor ecx, ecx
sub eax, ecx
je 0x408a5f
dec eax
je 0x408a45
mov dword [esp + 0x34], 0x422748
mov dword [esp + 0x30], 0x422788
mov dword [esp + 0x28], ecx
jmp 0x408a73
mov dword [esp + 0x34], 0x4226c8
mov dword [esp + 0x30], 0x422708
mov dword [esp + 0x28], 0x101
jmp 0x408a73
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], 0x14
mov eax, dword [edi]
mov ebp, ecx
or dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [esp + 0x14], ecx
inc eax
mov ecx, dword [esp + 0x20]
shl eax, cl
cmp dword [esp + 0xa0], 1
mov dword [esp + 0x4c], eax
mov dword [esp + 0x2c], eax
lea ecx, [eax - 1]
mov dword [esp + 0x54], ecx
jne 0x408ab1
cmp eax, 0x354
ja 0x408cd5
cmp dword [esp + 0xa0], 2
jne 0x408ac6
cmp eax, 0x250
ja 0x408cd5
mov al, dl
sub al, byte [esp + 0x14]
mov byte [esp + 0x11], al
mov eax, dword [esp + 0x18]
movzx ebx, word [eax]
mov ecx, ebx
lea eax, [ecx + 1]
cmp eax, dword [esp + 0x28]
jae 0x408aef
xor eax, eax
mov word [esp + 0x12], bx
mov byte [esp + 0x10], al
jmp 0x408b1a
mov eax, dword [esp + 0x28]
cmp ecx, eax
jb 0x408b0e
sub ecx, eax
mov eax, dword [esp + 0x30]
mov al, byte [eax + ecx*2]
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x34]
mov ax, word [eax + ecx*2]
jmp 0x408b15
mov byte [esp + 0x10], 0x60
xor eax, eax
mov word [esp + 0x12], ax
mov ebx, dword [esp + 0x4c]
xor eax, eax
inc eax
mov dword [esp + 0x38], ebx
mov ecx, edx
sub ecx, dword [esp + 0x14]
shl eax, cl
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
shl eax, 2
mov dword [esp + 0x3c], eax
mov eax, ebp
shr eax, cl
mov ecx, dword [esp + 0x1c]
add eax, ebx
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x10]
sub ecx, dword [esp + 0x3c]
mov dword [ecx], eax
sub ebx, dword [esp + 0x24]
jne 0x408b4d
lea ecx, [edx - 1]
inc ebx
shl ebx, cl
jmp 0x408b63
shr ebx, 1
test ebp, ebx
jne 0x408b61
test ebx, ebx
je 0x408b78
lea eax, [ebx - 1]
and ebp, eax
add ebp, ebx
mov dword [esp + 0x24], ebp
jmp 0x408b80
xor eax, eax
mov ebp, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov ecx, 0xffff
add eax, 2
add word [esp + edx*2 + 0x58], cx
mov dword [esp + 0x18], eax
jne 0x408baa
cmp edx, esi
je 0x408c84
movzx eax, word [eax]
mov ecx, dword [esp + 0x40]
movzx edx, word [ecx + eax*2]
mov ebx, dword [esp + 0x20]
cmp edx, ebx
jbe 0x408ac6
mov eax, dword [esp + 0x54]
and eax, ebp
mov dword [esp + 0x3c], eax
cmp eax, dword [esp + 0x44]
je 0x408ac6
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
test eax, eax
cmove eax, ebx
lea ebp, [ebp + ecx*4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ebp
mov ecx, edx
xor ebp, ebp
sub ecx, eax
inc ebp
add eax, ecx
shl ebp, cl
mov dword [esp + 0x38], eax
cmp eax, esi
jae 0x408c1f
lea ebx, [esp + 0x58]
mov edi, eax
lea ebx, [ebx + eax*2]
movzx eax, word [ebx]
sub ebp, eax
test ebp, ebp
jle 0x408c17
inc ecx
add ebx, 2
inc edi
add ebp, ebp
cmp edi, esi
jb 0x408c03
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
xor ebp, ebp
inc ebp
shl ebp, cl
add eax, ebp
mov dword [esp + 0x4c], ebp
cmp dword [esp + 0xa0], 1
mov dword [esp + 0x2c], eax
jne 0x408c47
cmp eax, 0x354
ja 0x408cd5
cmp dword [esp + 0xa0], 2
jne 0x408c58
cmp eax, 0x250
ja 0x408cd5
mov ebp, dword [esp + 0x3c]
mov eax, dword [edi]
mov dword [esp + 0x44], ebp
mov byte [eax + ebp*4], cl
mov eax, dword [edi]
mov byte [eax + ebp*4 + 1], bl
mov ecx, dword [edi]
mov eax, dword [esp + 0x1c]
sub eax, ecx
sar eax, 2
mov word [ecx + ebp*4 + 2], ax
mov ebp, dword [esp + 0x24]
jmp 0x408ac6
test ebp, ebp
je 0x408ca7
sub dl, byte [esp + 0x14]
xor eax, eax
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x10], 0x40
mov byte [esp + 0x11], dl
mov word [esp + 0x12], ax
mov eax, dword [esp + 0x10]
mov dword [ecx + ebp*4], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x50]
shl eax, 2
add dword [edi], eax
mov eax, dword [esp + 0x20]
mov dword [ecx], eax
xor eax, eax
mov ecx, dword [esp + 0x98]
pop esi
pop ebp
pop edi
pop ebx
xor ecx, esp
call fcn.0040b10c
add esp, 0x8c
ret
xor eax, eax
inc eax
jmp 0x408cbc
or eax, 0xffffffff
jmp 0x408cbc
call fcn.00409cf5
int3