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

Disassembly:
push ebp
push ebx
push edi
sub esp, 0x88
mov eax, esp
mov edx, eax
add edx, 0x88
mov dword [eax], 0
add eax, 4
cmp eax, edx
jne 0x402800
mov ebx, dword [esp + 0xa4]
cmp ebx, 0x18
jge 0x402823
mov eax, 0xffffffff
jmp 0x4032b4
mov ebx, dword [esp + 0xa8]
and ebx, ebx
jne 0x40283f
mov ebx, dword [esp + 0x9c]
add ebx, 0xfffffffc
mov dword [esp + 0x9c], ebx
mov ebx, dword [esp + 0x9c]
and ebx, 3
and ebx, ebx
je 0x40286b
mov ebx, dword [esp + 0x9c]
mov eax, ebx
mov ebx, 4
cdq
idiv ebx
mov ebx, eax
shl ebx, 2
add ebx, 4
mov dword [esp], ebx
jmp 0x402875
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov ebx, dword [esp + 0xa4]
and ebx, 3
and ebx, ebx
je 0x4028b0
mov ebx, dword [esp + 0xa4]
and ebx, 3
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xa4]
mov eax, ebx
mov ebx, 4
cdq
idiv ebx
mov ebx, eax
shl ebx, 2
add ebx, 4
mov dword [esp + 8], ebx
jmp 0x4028bb
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
cmp dword [esp + 0xa8], 0
je 0x4028cf
mov dword [esp + 0xc], 1
jmp 0x4028d7
mov dword [esp + 0xc], 0xffffffff
mov ebx, dword [esp + 8]
mov eax, ebx
mov ebx, 4
cdq
idiv ebx
mov ebx, eax
mov dword [esp + 0x10], ebx
mov ebx, dword [esp]
mov eax, ebx
mov ebx, 4
cdq
idiv ebx
dec eax
inc eax
push 5
lea edx, [esp + 0x18]
push edx
push 0
mov edx, dword [esp + 0x20]
call fcn.00405020
push 4
call fcn.00405040
cmp dword [esp + 0xa8], 0
je 0x40293f
push dword [esp + 0x9c]
push dword [esp + 0x18]
push dword [esp + 0xa0]
call fcn.00406610
jmp 0x40296a
mov eax, dword [esp + 0x98]
call fcn.00406550
mov dword [esp + 0x1c], eax
push dword [esp + 0x9c]
push dword [esp + 0x18]
mov ebx, dword [esp + 0xa0]
add ebx, 4
push ebx
call fcn.00406610
mov eax, dword [esp + 0x10]
inc eax
push 5
lea edx, [esp + 0x24]
push edx
push 0
mov edx, dword [esp + 0x2c]
call fcn.00405020
push 4
call fcn.00405040
mov ebx, dword [esp + 0x10]
dec ebx
mov eax, ebx
inc eax
push 5
lea edx, [esp + 0x2c]
push edx
push 0
mov edx, dword [esp + 0x34]
call fcn.00405020
push 4
call fcn.00405040
mov ebx, dword [esp + 8]
dec ebx
mov eax, ebx
inc eax
push 5
lea edx, [esp + 0x34]
push edx
push 0
mov edx, dword [esp + 0x3c]
call fcn.00405020
push 4
call fcn.00405040
push dword [esp + 0xa4]
push dword [esp + 0x24]
push dword [esp + 0xa8]
call fcn.00406610
cmp dword [esp + 4], 0
je 0x402a5a
mov ebx, dword [esp + 8]
sub ebx, dword [esp + 4]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 8]
dec ebx
cmp ebx, dword [esp + 0x38]
jl 0x402a5a
mov ebx, dword [esp + 0x20]
add ebx, dword [esp + 0x3c]
mov eax, ebx
call fcn.00406560
mov ebx, eax
mov edi, dword [esp + 0x20]
add edi, dword [esp + 0x3c]
add edi, 5
mov eax, edi
call fcn.00406560
add ebx, eax
push ebx
mov ebx, dword [esp + 0x24]
add ebx, dword [esp + 0x3c]
mov eax, ebx
call fcn.00406540
add dword [esp + 0x3c], 5
inc dword [esp + 0x38]
jmp 0x402a0f
mov dword [esp + 0x38], 0
mov ebx, dword [esp + 0x10]
dec ebx
cmp ebx, dword [esp + 0x38]
jl 0x402a9a
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x20]
shl ebx, 2
mov ebx, dword [ebp + ebx]
mov edi, dword [esp + 0x38]
shl edi, 2
add ebx, dword [ebp + edi]
push ebx
mov ebx, dword [esp + 0x14]
shl ebx, 2
pop eax
mov dword [ebp + ebx], eax
inc dword [esp + 0x38]
jmp 0x402a62
mov dword [esp + 0x38], 0
mov ebx, dword [esp + 8]
dec ebx
cmp ebx, dword [esp + 0x38]
jl 0x402aff
mov ebx, dword [esp + 0x20]
add ebx, dword [esp + 0x38]
mov eax, ebx
call fcn.00406560
mov ebx, eax
and ebx, 0xff
push ebx
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x34]
shl ebx, 2
pop eax
mov dword [ebp + ebx], eax
mov ebx, dword [esp + 0x38]
shl ebx, 2
mov ebx, dword [ebp + ebx]
cmp ebx, dword [esp + 0x40]
jle 0x402af9
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x30]
shl ebx, 2
mov eax, dword [ebp + ebx]
mov dword [esp + 0x40], eax
inc dword [esp + 0x38]
jmp 0x402aa2
mov ebx, dword [esp + 8]
dec ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x38], 0
mov ebx, dword [esp + 8]
dec ebx
cmp ebx, dword [esp + 0x38]
jl 0x402b57
mov ebx, dword [esp + 0x20]
add ebx, dword [esp + 0x38]
mov eax, ebx
call fcn.00406560
mov ebx, eax
mov edi, dword [esp + 0x20]
add edi, dword [esp + 0x44]
mov eax, edi
call fcn.00406560
add ebx, eax
push ebx
mov ebx, dword [esp + 0x24]
add ebx, dword [esp + 0x3c]
mov eax, ebx
call fcn.00406540
dec dword [esp + 0x44]
inc dword [esp + 0x38]
jmp 0x402b10
mov dword [esp + 0x38], 0
mov ebx, dword [esp + 8]
dec ebx
cmp ebx, dword [esp + 0x38]
jl 0x402c18
mov ebx, dword [esp + 0x20]
add ebx, dword [esp + 0x38]
mov eax, ebx
call fcn.00406560
mov byte [esp + 0x48], al
movsx ebx, byte [esp + 0x48]
add ebx, dword [esp + 0x38]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x4c]
cmp ebx, dword [esp + 8]
jle 0x402bab
mov ebx, dword [esp + 0x4c]
mov eax, ebx
cdq
idiv dword [esp + 8]
mov ebx, edx
mov dword [esp + 0x4c], ebx
jmp 0x402bca
mov ebx, dword [esp + 0x4c]
and ebx, ebx
jge 0x402bca
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x4c]
mov eax, edi
cdq
idiv dword [esp + 8]
mov edi, edx
add ebx, edi
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x4c]
cmp ebx, dword [esp + 8]
jne 0x402bdc
mov dword [esp + 0x4c], 0
mov ebx, dword [esp + 0x20]
add ebx, dword [esp + 0x4c]
mov eax, ebx
call fcn.00406560
mov byte [esp + 0x50], al
movsx ebx, byte [esp + 0x48]
movsx eax, byte [esp + 0x50]
add ebx, eax
push ebx
mov ebx, dword [esp + 0x24]
add ebx, dword [esp + 0x3c]
mov eax, ebx
call fcn.00406540
dec dword [esp + 0x44]
inc dword [esp + 0x38]
jmp 0x402b5f
mov dword [esp + 0x38], 0
mov ebx, dword [esp + 0x10]
dec ebx
cmp ebx, dword [esp + 0x38]
jl 0x402c48
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x20]
shl edi, 2
add ebx, dword [ebp + edi]
mov dword [esp + 0x54], ebx
inc dword [esp + 0x38]
jmp 0x402c20
mov dword [esp + 0x58], 1
mov dword [esp + 0x5c], 1
mov dword [esp + 0x38], 0
mov ebx, dword [esp + 8]
dec ebx
cmp ebx, dword [esp + 0x38]
jl 0x402dcb
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x30]
shl ebx, 2
fild dword [ebp + ebx]
fimul dword [esp + 8]
fidiv dword [esp + 0x40]
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fdiv dword [0x40c0dc]
mov ebx, dword [esp + 0x38]
shl ebx, 2
fistp dword [esp - 4]
mov eax, dword [esp - 4]
mov dword [ebp + ebx], eax
cmp dword [esp + 0x64], 0
je 0x402d77
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x30]
shl ebx, 2
mov ebx, dword [ebp + ebx]
cmp ebx, dword [esp + 0x68]
jne 0x402d77
mov ebx, dword [esp + 0x58]
cmp ebx, dword [esp + 0x68]
jne 0x402d27
mov ebx, dword [esp + 0x58]
add ebx, dword [esp + 0x5c]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x10]
dec edi
cmp ebx, edi
je 0x402cf9
mov ebx, dword [esp + 0x58]
cmp ebx, 1
je 0x402cf9
jmp 0x402d00
mov eax, 1
jmp 0x402d02
xor eax, eax
and eax, eax
je 0x402d11
mov ebx, dword [esp + 0x5c]
imul ebx, ebx, 0xffffffff
mov dword [esp + 0x5c], ebx
push dword [esp + 0x58]
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x34]
shl ebx, 2
pop eax
mov dword [ebp + ebx], eax
jmp 0x402d3b
push dword [esp + 0x58]
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x34]
shl ebx, 2
pop eax
mov dword [ebp + ebx], eax
mov ebx, dword [esp + 0x58]
add ebx, dword [esp + 0x5c]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x10]
dec edi
cmp ebx, edi
je 0x402d5f
mov ebx, dword [esp + 0x58]
cmp ebx, 1
je 0x402d5f
jmp 0x402d66
mov eax, 1
jmp 0x402d68
xor eax, eax
and eax, eax
je 0x402d77
mov ebx, dword [esp + 0x5c]
imul ebx, ebx, 0xffffffff
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x30]
shl ebx, 2
mov ebx, dword [ebp + ebx]
and ebx, ebx
jne 0x402da7
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x30]
shl ebx, 2
mov ebx, dword [ebp + ebx]
inc ebx
push ebx
mov ebx, dword [esp + 0x3c]
shl ebx, 2
pop eax
mov dword [ebp + ebx], eax
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x30]
shl ebx, 2
mov eax, dword [ebp + ebx]
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], 1
inc dword [esp + 0x38]
jmp 0x402c60
mov ebx, dword [esp + 0x10]
dec ebx
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0x10]
mov eax, ebx
mov ebx, 2
cdq
idiv ebx
mov ebx, eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], 0
mov ebx, dword [esp + 0x10]
dec ebx
cmp ebx, dword [esp + 0x74]
jl 0x402e99
mov dword [esp + 0x78], 0
mov eax, dword [esp + 0x6c]
cmp eax, dword [esp + 0x78]
jl 0x402e90
mov eax, dword [esp + 0x70]
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 0x7c]
cmp ebx, dword [esp + 0x78]
jne 0x402e2c
mov ebx, dword [esp + 0x78]
inc ebx
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x20]
shl ebx, 2
mov ebx, dword [ebp + ebx]
mov edi, dword [esp + 0x7c]
shl edi, 2
add ebx, dword [ebp + edi]
add ebx, dword [esp + 0x54]
push ebx
mov ebx, dword [esp + 0x78]
shl ebx, 2
pop eax
mov dword [ebp + ebx], eax
mov ebx, dword [esp + 0x74]
shl ebx, 2
push dword [ebp + ebx]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x2c]
shl ebx, 2
pop eax
mov dword [ebp + ebx], eax
dec dword [esp + 0x70]
mov ebx, dword [esp + 0x70]
and ebx, ebx
jne 0x402e87
mov ebx, dword [esp + 0x10]
dec ebx
mov dword [esp + 0x70], ebx
inc dword [esp + 0x78]
jmp 0x402e07
inc dword [esp + 0x74]
jmp 0x402df0
mov ebx, dword [esp + 0xa8]
and ebx, ebx
jne 0x402f73
mov dword [esp + 0x74], 0
mov ebx, dword [esp + 0x10]
dec ebx
cmp ebx, dword [esp + 0x74]
jl 0x402ed8
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x74]
mov ebp, dword [esp + 0x28]
shl edi, 2
xor ebx, dword [ebp + edi]
mov dword [esp + 0x1c], ebx
inc dword [esp + 0x74]
jmp 0x402eb0
mov dword [esp + 0x38], 0
mov ebx, dword [esp]
mov eax, ebx
mov ebx, 4
cdq
idiv ebx
mov ebx, eax
dec ebx
cmp ebx, dword [esp + 0x38]
jl 0x402f73
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x14]
shl ebx, 2
mov ebx, dword [ebp + ebx]
mov edi, dword [esp + 0x80]
mov ebp, dword [esp + 0x28]
shl edi, 2
xor ebx, dword [ebp + edi]
push ebx
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x18]
shl ebx, 2
pop eax
mov dword [ebp + ebx], eax
inc dword [esp + 0x80]
mov ebx, dword [esp + 0x80]
mov edi, dword [esp + 0x10]
dec edi
cmp ebx, edi
jne 0x402f4a
mov dword [esp + 0x80], 0
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x14]
shl ebx, 2
mov ebx, dword [ebp + ebx]
xor ebx, dword [esp + 0x1c]
push ebx
mov ebx, dword [esp + 0x3c]
shl ebx, 2
pop eax
mov dword [ebp + ebx], eax
inc dword [esp + 0x38]
jmp 0x402ee0
mov ebx, dword [esp + 8]
mov eax, ebx
mov ebx, 2
cdq
idiv ebx
mov ebx, eax
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0x10]
mov eax, ebx
mov ebx, 2
cdq
idiv ebx
mov ebx, eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x38], 0
mov ebx, dword [esp]
mov eax, ebx
mov ebx, 4
cdq
idiv ebx
mov ebx, eax
dec ebx
cmp ebx, dword [esp + 0x38]
jl 0x4030ca
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x14]
shl edi, 2
add ebx, dword [ebp + edi]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x38]
shl ebx, 2
mov ebx, dword [ebp + ebx]
mov edi, dword [esp + 0x74]
mov ebp, dword [esp + 0x20]
shl edi, 2
mov edi, dword [ebp + edi]
add edi, dword [esp + 0x54]
imul edi, dword [esp + 0xc]
sub ebx, edi
push ebx
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x18]
shl ebx, 2
pop eax
mov dword [ebp + ebx], eax
inc dword [esp + 0x74]
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x30]
shl edi, 2
cmp ebx, dword [ebp + edi]
jl 0x4030c1
mov dword [esp + 0x74], 0
dec dword [esp + 0x6c]
mov ebx, dword [esp + 0x6c]
and ebx, ebx
jne 0x403046
mov ebx, dword [esp + 8]
dec ebx
mov dword [esp + 0x6c], ebx
jmp 0x4030c1
mov dword [esp + 0x78], 0
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x30]
shl ebx, 2
mov eax, dword [ebp + ebx]
cmp eax, dword [esp + 0x78]
jl 0x4030c1
mov eax, dword [esp + 0x70]
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 0x7c]
cmp ebx, dword [esp + 0x78]
jne 0x40307e
mov ebx, dword [esp + 0x78]
inc ebx
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x20]
shl ebx, 2
mov ebx, dword [ebp + ebx]
mov edi, dword [esp + 0x7c]
shl edi, 2
add ebx, dword [ebp + edi]
push ebx
mov ebx, dword [esp + 0x7c]
shl ebx, 2
pop eax
mov dword [ebp + ebx], eax
inc dword [esp + 0x70]
mov ebx, dword [esp + 0x70]
cmp ebx, dword [esp + 0x10]
jne 0x4030bb
mov dword [esp + 0x70], 1
inc dword [esp + 0x78]
jmp 0x40304e
inc dword [esp + 0x38]
jmp 0x402fa3
cmp dword [esp + 0xa8], 0
je 0x4031e3
mov dword [esp + 0x38], 0
mov ebx, dword [esp]
mov eax, ebx
mov ebx, 4
cdq
idiv ebx
mov ebx, eax
dec ebx
cmp ebx, dword [esp + 0x38]
jl 0x40316f
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x14]
shl ebx, 2
mov ebx, dword [ebp + ebx]
xor ebx, dword [esp + 0x1c]
push ebx
mov ebx, dword [esp + 0x3c]
shl ebx, 2
pop eax
mov dword [ebp + ebx], eax
mov ebx, dword [esp + 0x38]
shl ebx, 2
mov ebx, dword [ebp + ebx]
mov edi, dword [esp + 0x80]
mov ebp, dword [esp + 0x28]
shl edi, 2
xor ebx, dword [ebp + edi]
push ebx
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x18]
shl ebx, 2
pop eax
mov dword [ebp + ebx], eax
inc dword [esp + 0x80]
mov ebx, dword [esp + 0x80]
mov edi, dword [esp + 0x10]
dec edi
cmp ebx, edi
jne 0x403166
mov dword [esp + 0x80], 0
inc dword [esp + 0x38]
jmp 0x4030e0
mov dword [esp + 0x74], 0
mov ebx, dword [esp + 0x10]
dec ebx
cmp ebx, dword [esp + 0x74]
jl 0x40319f
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x74]
mov ebp, dword [esp + 0x28]
shl edi, 2
xor ebx, dword [ebp + edi]
mov dword [esp + 0x1c], ebx
inc dword [esp + 0x74]
jmp 0x403177
mov ebx, dword [esp + 0x9c]
add ebx, 4
push ebx
call fcn.004065a0
mov dword [esp + 0x84], eax
push dword [esp + 0x1c]
mov eax, dword [esp + 0x88]
call fcn.00406530
push dword [esp + 0x9c]
mov ebx, dword [esp + 0x88]
add ebx, 4
push ebx
push dword [esp + 0x1c]
call fcn.00406610
jmp 0x40320d
push dword [esp + 0x9c]
call fcn.004065a0
mov dword [esp + 0x84], eax
push dword [esp + 0x9c]
push dword [esp + 0x88]
push dword [esp + 0x1c]
call fcn.00406610
push 5
lea edx, [esp + 0x18]
push edx
push 0
mov edx, dword [esp + 0x20]
call fcn.00405020
mov eax, 1
push 4
call fcn.00405040
push 5
lea edx, [esp + 0x24]
push edx
push 0
mov edx, dword [esp + 0x2c]
call fcn.00405020
mov eax, 1
push 4
call fcn.00405040
push 5
lea edx, [esp + 0x2c]
push edx
push 0
mov edx, dword [esp + 0x34]
call fcn.00405020
mov eax, 1
push 4
call fcn.00405040
push 5
lea edx, [esp + 0x34]
push edx
push 0
mov edx, dword [esp + 0x3c]
call fcn.00405020
mov eax, 1
push 4
call fcn.00405040
mov eax, dword [esp + 0x84]
jmp 0x4032b4
push eax
mov edx, dword [esp + 0x18]
call fcn.00405020
mov edx, dword [esp + 0x24]
call fcn.00405020
mov edx, dword [esp + 0x2c]
call fcn.00405020
mov edx, dword [esp + 0x34]
call fcn.00405020
pop eax
add esp, 0x88
pop edi
pop ebx
pop ebp
ret 0x14