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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x48818a
sub esp, 0x7c
mov eax, dword [esp + 0x94]
test eax, eax
sete dl
mov ebx, dword [esp + 0x98]
test ebx, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4878d1
xor ecx, ecx
jmp 0x4878d8
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0xa0]
mov edx, dword [edx]
add edx, 0xffffffc4
neg edx
cmp edx, 0x20
sbb ebp, ebp
lea esi, [edx - 0x20]
mov dword [esp + 0x58], esi
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
cmp esi, 0x20
sbb ebx, ebx
cmp edi, 0x20
sbb edi, edi
mov ecx, esi
mov esi, eax
shr eax, cl
mov ecx, edx
shl esi, cl
and esi, ebp
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x98]
shl esi, cl
and esi, ebp
and eax, ebx
or eax, esi
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x94]
shl edx, cl
and edx, edi
or edx, eax
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x54]
jmp 0x487950
shl edx, 1
mov ebp, ebx
shr ebx, 0x1f
or edx, ebx
shl ebp, 1
dec eax
mov ebx, ebp
test edx, edx
xchg ebp, ebx
setne bl
xchg ebp, ebx
test ebx, ebx
xchg esi, ebx
setne bl
xchg esi, ebx
or ebp, esi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x487980
test edx, 0x10000000
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, 1
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x487942
mov ebp, dword [esp + 0x8c]
cmp ebp, 0xf
jae 0x487af2
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], ebx
shl ebp, 2
cmp ebp, 0x20
sbb edi, edi
mov dword [esp + 0x58], edi
lea ecx, [ebp - 0x20]
mov dword [esp + 0x54], ecx
cmp ecx, 0x20
sbb esi, esi
mov dword [esp + 0x44], esi
neg ecx
cmp ecx, 0x20
sbb eax, eax
lea esi, [ebp - 0x3c]
xchg esi, ebx
neg ebx
xchg esi, ebx
mov dword [esp + 0x40], esi
cmp esi, 0x20
sbb edi, edi
mov dword [esp + 0x3c], edi
lea edi, [esi - 0x20]
mov dword [esp + 0x38], edi
cmp edi, 0x20
sbb esi, esi
mov dword [esp + 0x34], esi
xchg edi, ebx
neg ebx
xchg edi, ebx
mov dword [esp + 0x30], edi
cmp edi, 0x20
sbb esi, esi
mov dword [esp + 0x2c], esi
shr ebx, cl
and ebx, eax
mov ecx, ebp
mov eax, edx
shl edx, cl
mov esi, dword [esp + 0x58]
and edx, esi
or edx, ebx
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x48]
shl ebx, cl
mov ecx, eax
mov eax, dword [esp + 0x44]
and ebx, eax
or ebx, edx
and ebx, 0xfffffff
cmp ebx, 0x8000000
seta al
mov byte [esp + 0x23], al
sete dl
mov ebx, ecx
mov ecx, ebp
mov eax, dword [esp + 0x48]
mov ebp, eax
shl eax, cl
and eax, esi
mov ecx, dword [esp + 0x40]
shr ebp, cl
mov esi, dword [esp + 0x3c]
and ebp, esi
mov ecx, edi
shl ebx, cl
mov edi, dword [esp + 0x2c]
and ebx, edi
or ebx, ebp
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x50]
shr edi, cl
mov ebp, dword [esp + 0x34]
and edi, ebp
or ebx, edi
mov edi, ebx
and ebx, 1
or ebx, eax
test ebx, ebx
seta al
mov ebx, ecx
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x50]
shr ebp, cl
and ebp, esi
and edx, eax
movzx eax, byte [esp + 0x23]
or edx, eax
test dl, dl
je 0x487a99
add edi, 1
adc ebp, 0
mov eax, ecx
mov ecx, ebx
mov edx, edi
shl edi, cl
mov ebx, dword [esp + 0x34]
and edi, ebx
mov ecx, dword [esp + 0x30]
mov ebx, edx
shr edx, cl
mov ecx, ebx
mov ebx, dword [esp + 0x2c]
and edx, ebx
mov ebx, ecx
mov ecx, eax
shl ebp, cl
and ebp, esi
or edx, ebp
or edx, edi
shl ebx, cl
and ebx, esi
test edx, 0x20000000
je 0x487ae3
shr ebx, 1
mov ecx, edx
shl edx, 0x1f
or ebx, edx
shr ecx, 1
mov ebp, dword [esp + 0x4c]
lea eax, [ebp + 1]
jmp 0x487ae9
mov ecx, edx
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x8c]
mov edx, ecx
movzx ecx, byte [esp + 0x90]
cmp cl, 0x58
jne 0x487b07
lea esi, [0x50661f]
jmp 0x487b0d
lea esi, [0x50662f]
mov dword [esp + 0x58], edx
mov dword [esp + 0x70], esi
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], ebx
movzx edi, byte [esp + 0x91]
xchg edi, eax
test al, al
xchg edi, eax
je 0x487bb8
mov edi, dword [esp + 0x84]
inc edi
mov eax, dword [esp + 0x88]
cmp eax, edi
jb 0x487b57
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x68]
jmp 0x487bad
mov ecx, dword [esp + 0x80]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x4ec9a0]
mov dword [esp + 0x10], eax
call fcn.0044cd30
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x8c]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x78], eax
mov eax, ecx
movzx ecx, byte [esp + 0x90]
mov esi, dword [esp + 0x78]
mov byte [edi + esi - 1], 0x2d
jmp 0x487bcd
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
add edi, 3
cmp eax, edi
jae 0x487c19
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 3
lea eax, [0x4ec9a0]
mov dword [esp + 0x10], eax
call fcn.0044cd30
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
movzx ecx, byte [esp + 0x90]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x8c]
mov byte [edi + esi - 3], 0x30
mov byte [edi + esi - 2], cl
shr edx, 0x1c
and edx, 1
add edx, 0x30
mov byte [edi + esi - 1], dl
mov edx, dword [esp + 0x58]
shl edx, 4
shr ebx, 0x1c
or ebx, edx
mov dword [esp + 0x58], ebx
mov edx, dword [esp + 0x54]
shl edx, 4
mov dword [esp + 0x54], edx
test ebp, ebp
jge 0x487cb7
test ebx, ebx
setne cl
test edx, edx
setne dl
or edx, ecx
test dl, dl
je 0x487ca9
lea ecx, [edi + 1]
cmp eax, ecx
jae 0x487c97
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x4ec9a0]
mov dword [esp + 0x10], eax
call fcn.0044cd30
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x58]
mov byte [ecx + esi - 1], 0x2e
mov ebp, dword [esp + 0x70]
mov edx, dword [esp + 0x54]
jmp 0x488107
test ebp, ebp
movzx ecx, byte [esp + 0x90]
mov edx, dword [esp + 0x54]
jle 0x487d1b
inc edi
cmp eax, edi
jae 0x487d03
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x4ec9a0]
mov dword [esp + 0x10], eax
call fcn.0044cd30
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
movzx ecx, byte [esp + 0x90]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x8c]
mov byte [edi + esi - 1], 0x2e
mov dword [esp + 0x60], eax
xor eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x60]
jmp 0x488077
mov dword [esp + 0x78], esi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x28], eax
mov byte [esp], cl
call fcn.004842a0
movzx eax, byte [esp + 0x90]
cmp byte [esp + 4], al
jne 0x487d44
mov eax, 0x70
jmp 0x487d49
mov eax, 0x50
mov ecx, dword [esp + 0x4c]
inc ecx
mov edx, dword [esp + 0x28]
cmp edx, ecx
jb 0x487d5c
mov esi, dword [esp + 0x78]
jmp 0x487d99
mov byte [esp + 0x20], al
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x4ec9a0]
mov dword [esp + 0x10], eax
call fcn.0044cd30
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, eax
movzx eax, byte [esp + 0x20]
mov byte [ecx + esi - 1], al
mov ebx, dword [esp + 0x5c]
test ebx, ebx
jge 0x487dae
neg ebx
mov eax, 0x2d
jmp 0x487db3
mov eax, 0x2b
mov dword [esp + 0x5c], ebx
inc ecx
cmp edx, ecx
jae 0x487df7
mov byte [esp + 0x20], al
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x4ec9a0]
mov dword [esp + 0x10], eax
call fcn.0044cd30
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx eax, byte [esp + 0x20]
mov ebx, dword [esp + 0x5c]
mov byte [ecx + esi - 1], al
cmp ebx, 0x64
jge 0x487e76
add ecx, 2
mov eax, 0xcccccccd
mov ebp, edx
imul ebx
add edx, ebx
sar edx, 3
mov edi, ebx
sar ebx, 0x1f
sub edx, ebx
lea ebx, [edx + edx*4]
shl ebx, 1
sub edi, ebx
cmp ebp, ecx
jae 0x487e63
mov dword [esp + 0x5c], edx
mov dword [esp + 0x4c], edi
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 2
lea eax, [0x4ec9a0]
mov dword [esp + 0x10], eax
call fcn.0044cd30
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x4c]
mov ebp, edx
mov edx, dword [esp + 0x5c]
lea eax, [edx + 0x30]
mov byte [ecx + esi - 2], al
lea eax, [edi + 0x30]
mov byte [ecx + esi - 1], al
jmp 0x488033
cmp ebx, 0x3e8
jge 0x487f3a
add ecx, 3
mov eax, 0xcccccccd
mov ebp, edx
imul ebx
add edx, ebx
mov edi, edx
sar edx, 3
mov dword [esp + 0x4c], edx
mov eax, 0xcccccccd
imul edx
sar edi, 0x1f
mov eax, esi
mov esi, dword [esp + 0x4c]
add edx, esi
sar edx, 3
sub edx, edi
lea edx, [edx + edx*4]
shl edx, 1
mov edi, esi
sub esi, edx
lea edx, [edi + edi*4]
shl edx, 1
mov edi, ebx
sub ebx, edx
cmp ebp, ecx
jae 0x487f0c
mov dword [esp + 0x4c], esi
mov dword [esp + 0x28], ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 3
lea eax, [0x4ec9a0]
mov dword [esp + 0x10], eax
call fcn.0044cd30
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x5c]
mov eax, esi
mov ebp, edx
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x78], eax
mov eax, 0x51eb851f
imul edi
sar edx, 5
add edx, 0x30
mov edi, dword [esp + 0x78]
mov byte [ecx + edi - 3], dl
lea edx, [esi + 0x30]
mov byte [ecx + edi - 2], dl
lea edx, [ebx + 0x30]
mov byte [ecx + edi - 1], dl
mov esi, edi
jmp 0x488033
mov dword [esp + 0x74], esi
add ecx, 4
mov eax, 0x51eb851f
mov ebp, edx
imul ebx
sar edx, 5
movzx edi, dl
imul edi, edi, 0x19a
shr edi, 0xc
lea edi, [edi + edi*4]
shl edi, 1
sub edx, edi
mov byte [esp + 0x22], dl
mov eax, 0xcccccccd
mov edi, edx
imul ebx
add edx, ebx
mov dword [esp + 0x4c], edx
sar edx, 3
mov dword [esp + 0x28], edx
mov eax, 0xcccccccd
imul edx
mov eax, edi
mov edi, dword [esp + 0x28]
add edx, edi
sar edx, 3
mov esi, dword [esp + 0x4c]
sar esi, 0x1f
sub edx, esi
lea edx, [edx + edx*4]
shl edx, 1
mov esi, edi
sub edi, edx
lea edx, [esi + esi*4]
shl edx, 1
mov esi, ebx
sub ebx, edx
cmp ebp, ecx
jb 0x487fb1
mov edx, dword [esp + 0x74]
jmp 0x488000
mov dword [esp + 0x4c], edi
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 4
lea eax, [0x4ec9a0]
mov dword [esp + 0x10], eax
call fcn.0044cd30
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx eax, byte [esp + 0x22]
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x4c]
mov ebp, edx
mov edx, esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x78], edx
mov eax, 0x4189374c
imul esi
sar edx, 8
add edx, 0x30
mov esi, dword [esp + 0x78]
mov byte [ecx + esi - 4], dl
movzx edx, byte [esp + 0x22]
add edx, 0x30
mov byte [ecx + esi - 3], dl
lea edx, [edi + 0x30]
mov byte [ecx + esi - 2], dl
lea edx, [ebx + 0x30]
mov byte [ecx + esi - 1], dl
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], ebp
add esp, 0x7c
ret
mov byte [edi + esi - 1], bl
inc ecx
mov ebx, dword [esp + 0x54]
shl ebx, 4
shr edx, 0x1c
or ebx, edx
mov edx, dword [esp + 0x58]
shl edx, 4
mov ebp, dword [esp + 0x8c]
mov dword [esp + 0x24], ecx
movzx ecx, byte [esp + 0x90]
mov ecx, dword [esp + 0x24]
cmp ebp, ecx
jle 0x4880e3
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], ebx
inc edi
shr ebx, 0x1c
and ebx, 0xf
mov ebp, dword [esp + 0x70]
movzx ebx, byte [ebp + ebx]
cmp eax, edi
jae 0x48804c
mov byte [esp + 0x21], bl
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x4ec9a0]
mov dword [esp + 0x10], eax
call fcn.0044cd30
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x58]
movzx ebx, byte [esp + 0x21]
mov ebp, dword [esp + 0x70]
jmp 0x48804c
movzx ecx, byte [esp + 0x90]
jmp 0x487d1b
mov byte [ecx + esi - 1], bl
shl edx, 4
mov ebx, dword [esp + 0x58]
mov edi, ebx
shr ebx, 0x1c
or ebx, edx
shl edi, 4
mov edx, edi
mov dword [esp + 0x58], edx
test ebx, ebx
xchg edi, ebx
setne bl
xchg edi, ebx
test edx, edx
setne dl
or edi, edx
xchg edi, eax
test al, al
xchg edi, eax
je 0x48817b
inc ecx
mov edx, ebx
shr ebx, 0x1c
and ebx, 0xf
movzx ebx, byte [ebp + ebx]
cmp eax, ecx
jae 0x4880f0
mov byte [esp + 0x21], bl
mov dword [esp + 0x54], edx
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x4ec9a0]
mov dword [esp + 0x10], eax
call fcn.0044cd30
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x54]
movzx ebx, byte [esp + 0x21]
mov ebp, dword [esp + 0x70]
jmp 0x4880f0
mov edi, ecx
movzx ecx, byte [esp + 0x90]
jmp 0x487d1b
call fcn.00463e70
jmp fcn.00487890