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

Disassembly:
mov ecx, dword [0x8c8600]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x487e27
sub esp, 0x70
mov eax, dword [esp + 0x88]
test eax, eax
sete dl
mov ebx, dword [esp + 0x8c]
test ebx, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4875af
xor ecx, ecx
jmp 0x4875b6
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x94]
mov edx, dword [edx]
add edx, 0xffffffc4
neg edx
mov ecx, edx
shl ebx, cl
mov esi, eax
shl eax, cl
lea edi, [ecx - 0x20]
mov ecx, edi
shl esi, cl
neg ecx
mov ebp, dword [esp + 0x88]
shr ebp, cl
cmp edi, 0x20
sbb edi, edi
and esi, edi
cmp edx, 0x20
sbb edx, edx
and ebx, edx
and eax, edx
cmp ecx, 0x20
sbb edx, edx
and ebp, edx
or ebx, ebp
or ebx, esi
mov edx, dword [esp + 0x60]
jmp 0x48760f
shl ebx, 1
mov ebp, eax
shr ebp, 0x1f
or ebx, ebp
shl eax, 1
dec edx
test eax, eax
xchg ebp, ebx
setne bl
xchg ebp, ebx
test ebx, ebx
xchg esi, ebx
setne bl
xchg esi, ebx
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
je 0x48763f
test ebx, 0x10000000
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, 1
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x487603
mov ecx, dword [esp + 0x80]
cmp ecx, 0xf
jae 0x4877a8
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], eax
mov ebp, ecx
shl ebp, 2
mov ecx, ebp
mov edi, eax
shl eax, cl
shl ebx, cl
lea esi, [ecx - 0x20]
mov ecx, esi
shl edi, cl
mov dword [esp + 0x50], edi
neg ecx
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x54]
shr edx, cl
mov dword [esp + 0x48], edx
lea edx, [ebp - 0x3c]
neg edx
mov dword [esp + 0x44], edx
mov ecx, edx
mov edi, dword [esp + 0x5c]
shr edi, cl
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x54]
shr edi, cl
mov dword [esp + 0x54], edi
lea edi, [ecx - 0x20]
mov ecx, edi
mov edx, dword [esp + 0x5c]
shr edx, cl
mov dword [esp + 0x3c], edx
neg ecx
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x5c]
shl edx, cl
cmp ebp, 0x20
sbb ebp, ebp
and eax, ebp
mov dword [esp + 0x5c], eax
and ebx, ebp
cmp esi, 0x20
sbb ebp, ebp
mov esi, dword [esp + 0x50]
and esi, ebp
mov ebp, dword [esp + 0x4c]
cmp ebp, 0x20
sbb ebp, ebp
mov eax, dword [esp + 0x48]
and eax, ebp
or ebx, eax
or ebx, esi
and ebx, 0xfffffff
cmp ecx, 0x20
sbb eax, eax
mov dword [esp + 0x50], eax
and edx, eax
cmp edi, 0x20
sbb ebp, ebp
mov dword [esp + 0x4c], ebp
mov esi, dword [esp + 0x3c]
and esi, ebp
mov eax, dword [esp + 0x44]
cmp eax, 0x20
sbb ecx, ecx
mov dword [esp + 0x48], ecx
mov ebp, dword [esp + 0x54]
and ebp, ecx
or edx, ebp
or edx, esi
mov ebp, edx
and edx, 1
mov esi, dword [esp + 0x5c]
or edx, esi
mov esi, dword [esp + 0x40]
and esi, ecx
test edx, edx
seta dl
cmp ebx, 0x8000000
seta bl
sete cl
and ecx, edx
or ecx, ebx
test cl, cl
je 0x48774f
add ebp, 1
adc esi, 0
mov ecx, eax
mov edx, ebp
shl ebp, cl
mov ecx, edi
mov ebx, edx
shl edx, cl
mov edi, dword [esp + 0x4c]
and edx, edi
mov ecx, dword [esp + 0x38]
shr ebx, cl
mov edi, dword [esp + 0x50]
and ebx, edi
mov ecx, eax
shl esi, cl
mov eax, dword [esp + 0x48]
and esi, eax
or ebx, esi
or edx, ebx
and ebp, eax
test edx, 0x20000000
je 0x487797
shr ebp, 1
mov eax, edx
shl eax, 0x1f
or ebp, eax
shr edx, 1
mov eax, dword [esp + 0x58]
inc eax
jmp 0x48779b
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x80]
mov ebx, edx
mov edx, eax
mov eax, ebp
movzx ebp, byte [esp + 0x84]
xchg ebp, eax
cmp al, 0x58
xchg ebp, eax
jne 0x4877bf
lea esi, [0x7060cc]
jmp 0x4877c5
lea esi, [0x70622c]
mov dword [esp + 0x64], esi
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x54], eax
mov dword [esp + 0x60], edx
movzx edi, byte [esp + 0x85]
xchg edi, eax
test al, al
xchg edi, eax
je 0x487860
mov edi, dword [esp + 0x78]
inc edi
mov edx, dword [esp + 0x7c]
cmp edx, edi
jb 0x487802
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x28]
jmp 0x487855
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6c0100]
mov dword [esp + 0x10], eax
call fcn.00472770
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x5c]
movzx ebp, byte [esp + 0x84]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x6c], eax
mov edx, ecx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x6c]
mov byte [edi + esi - 1], 0x2d
jmp 0x48786c
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x74]
add edi, 3
cmp edx, edi
jae 0x4878b8
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 3
lea eax, [0x6c0100]
mov dword [esp + 0x10], eax
call fcn.00472770
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x5c]
movzx ebp, byte [esp + 0x84]
mov byte [edi + esi - 3], 0x30
xchg ebp, eax
mov byte [edi + esi - 2], al
xchg ebp, eax
shr ebx, 0x1c
and ebx, 1
add ebx, 0x30
mov byte [edi + esi - 1], bl
mov ebx, dword [esp + 0x5c]
shl ebx, 4
shr eax, 0x1c
or eax, ebx
mov dword [esp + 0x5c], eax
mov ebx, dword [esp + 0x54]
shl ebx, 4
mov dword [esp + 0x54], ebx
test ecx, ecx
jge 0x48795c
test eax, eax
xchg ebp, ebx
setne bl
xchg ebp, ebx
test ebx, ebx
setne al
or eax, ebp
test al, al
je 0x48794e
lea eax, [edi + 1]
cmp edx, eax
jae 0x48793c
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6c0100]
mov dword [esp + 0x10], eax
call fcn.00472770
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x54]
mov byte [eax + esi - 1], 0x2e
mov ecx, dword [esp + 0x64]
mov ebp, dword [esp + 0x5c]
jmp 0x487da5
test ecx, ecx
mov eax, dword [esp + 0x5c]
movzx ebp, byte [esp + 0x84]
jle 0x4879b2
inc edi
cmp edx, edi
jae 0x4879a8
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6c0100]
mov dword [esp + 0x10], eax
call fcn.00472770
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x54]
movzx ebp, byte [esp + 0x84]
mov byte [edi + esi - 1], 0x2e
jmp 0x487d16
mov dword [esp + 0x6c], esi
mov dword [esp + 0x58], edi
mov dword [esp + 0x34], edx
xchg ebp, eax
mov byte [esp], al
xchg ebp, eax
call fcn.00483f20
movzx eax, byte [esp + 0x84]
cmp byte [esp + 4], al
jne 0x4879dd
mov eax, 0x70
jmp 0x4879e2
mov eax, 0x50
mov ecx, dword [esp + 0x58]
inc ecx
mov edx, dword [esp + 0x34]
cmp edx, ecx
jb 0x4879f5
mov esi, dword [esp + 0x6c]
jmp 0x487a30
mov byte [esp + 0x22], al
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6c0100]
mov dword [esp + 0x10], eax
call fcn.00472770
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx eax, byte [esp + 0x22]
mov byte [ecx + esi - 1], al
mov ebx, dword [esp + 0x60]
test ebx, ebx
jge 0x487a45
neg ebx
mov eax, 0x2d
jmp 0x487a4a
mov eax, 0x2b
inc ecx
cmp edx, ecx
jae 0x487a8e
mov dword [esp + 0x60], ebx
mov byte [esp + 0x22], al
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6c0100]
mov dword [esp + 0x10], eax
call fcn.00472770
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx eax, byte [esp + 0x22]
mov ebx, dword [esp + 0x60]
mov byte [ecx + esi - 1], al
cmp ebx, 0x64
jge 0x487b0d
add ecx, 2
mov eax, 0xcccccccd
mov ebp, edx
imul ebx
mov edi, ebx
sar ebx, 0x1f
add edx, edi
sar edx, 3
sub edx, ebx
lea ebx, [edx + edx*4]
shl ebx, 1
sub edi, ebx
cmp ebp, ecx
jae 0x487afa
mov dword [esp + 0x60], edx
mov dword [esp + 0x58], edi
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 2
lea eax, [0x6c0100]
mov dword [esp + 0x10], eax
call fcn.00472770
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x58]
mov ebp, edx
mov edx, dword [esp + 0x60]
lea eax, [edx + 0x30]
mov byte [ecx + esi - 2], al
lea eax, [edi + 0x30]
mov byte [ecx + esi - 1], al
jmp 0x487cdd
mov dword [esp + 0x68], esi
cmp ebx, 0x3e8
jge 0x487bdb
add ecx, 3
mov eax, 0xcccccccd
mov ebp, edx
imul ebx
add edx, ebx
mov edi, edx
sar edx, 0x1f
mov dword [esp + 0x60], edx
sar edi, 3
mov eax, 0xcccccccd
imul edi
add edx, edi
sar edx, 3
mov esi, dword [esp + 0x60]
sub edx, esi
lea edx, [edx + edx*4]
shl edx, 1
mov dword [esp + 0x60], edx
lea esi, [edi + edi*4]
shl esi, 1
mov eax, 0x51eb851f
imul ebx
mov eax, edx
mov edx, dword [esp + 0x60]
sub edi, edx
sub ebx, esi
cmp ebp, ecx
jb 0x487b72
mov esi, dword [esp + 0x68]
jmp 0x487bbe
mov dword [esp + 0x60], ebx
mov dword [esp + 0x58], eax
mov dword [esp + 0x34], edi
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 3
lea eax, [0x6c0100]
mov dword [esp + 0x10], eax
call fcn.00472770
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x34]
mov ebp, edx
sar eax, 5
add eax, 0x30
mov byte [ecx + esi - 3], al
lea eax, [edi + 0x30]
mov byte [ecx + esi - 2], al
lea eax, [ebx + 0x30]
mov byte [ecx + esi - 1], al
jmp 0x487cdd
add ecx, 4
mov dword [esp + 0x60], ecx
mov eax, 0x51eb851f
mov ebp, edx
imul ebx
sar edx, 5
mov dword [esp + 0x58], edx
movzx edi, dl
imul edi, edi, 0x19a
shr edi, 0xc
lea edi, [edi + edi*4]
shl edi, 1
mov eax, 0xcccccccd
imul ebx
add edx, ebx
mov eax, edx
sar edx, 0x1f
mov dword [esp + 0x34], edx
sar eax, 3
mov dword [esp + 0x30], eax
mov eax, 0xcccccccd
mov esi, dword [esp + 0x30]
imul esi
add edx, esi
sar edx, 3
mov ecx, dword [esp + 0x34]
sub edx, ecx
lea ecx, [edx + edx*4]
shl ecx, 1
lea edx, [esi + esi*4]
shl edx, 1
mov dword [esp + 0x34], edx
mov eax, 0x4189374c
imul ebx
mov eax, edx
mov edx, dword [esp + 0x58]
sub edx, edi
sub esi, ecx
mov ecx, dword [esp + 0x34]
sub ebx, ecx
mov ecx, dword [esp + 0x60]
cmp ebp, ecx
jb 0x487c65
mov edi, dword [esp + 0x68]
jmp 0x487cbc
mov byte [esp + 0x23], dl
mov dword [esp + 0x60], eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 4
lea eax, [0x6c0100]
mov dword [esp + 0x10], eax
call fcn.00472770
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x58]
mov edi, esi
mov ebp, edx
movzx edx, byte [esp + 0x23]
mov esi, dword [esp + 0x34]
sar eax, 8
add eax, 0x30
mov byte [ecx + edi - 4], al
lea eax, [edx + 0x30]
mov byte [ecx + edi - 3], al
lea eax, [esi + 0x30]
mov byte [ecx + edi - 2], al
lea eax, [ebx + 0x30]
mov byte [ecx + edi - 1], al
mov esi, edi
mov dword [esp + 0x98], esi
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], ebp
add esp, 0x70
ret
mov byte [edi + esi - 1], al
mov eax, dword [esp + 0x5c]
shl eax, 4
shr ebx, 0x1c
dec ecx
or eax, ebx
mov ebx, dword [esp + 0x54]
shl ebx, 4
movzx ebp, byte [esp + 0x84]
test ecx, ecx
jle 0x4879b2
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], ebx
inc edi
shr eax, 0x1c
and eax, 0xf
mov ebp, dword [esp + 0x64]
movzx eax, byte [ebp + eax]
cmp edx, edi
jae 0x487cf6
mov dword [esp + 0x24], ecx
mov byte [esp + 0x23], al
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6c0100]
mov dword [esp + 0x10], eax
call fcn.00472770
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx eax, byte [esp + 0x23]
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x64]
jmp 0x487cf6
xchg ebp, ebx
mov byte [eax + esi - 1], bl
xchg ebp, ebx
shl ebx, 4
mov ebp, dword [esp + 0x5c]
mov edi, ebp
shr edi, 0x1c
or ebx, edi
shl ebp, 4
mov edi, ebp
mov ebp, ebx
mov ebx, edi
mov dword [esp + 0x5c], ebx
test ebx, ebx
xchg edi, ebx
setne bl
xchg edi, ebx
test ebp, ebp
setne bl
or ebx, edi
test bl, bl
je 0x487e18
inc eax
mov ebx, ebp
shr ebp, 0x1c
and ebp, 0xf
movzx ebp, byte [ecx + ebp]
cmp edx, eax
jae 0x487d86
xchg ebp, eax
mov byte [esp + 0x23], al
xchg ebp, eax
mov dword [esp + 0x54], ebx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6c0100]
mov dword [esp + 0x10], eax
call fcn.00472770
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x54]
movzx ebp, byte [esp + 0x23]
jmp 0x487d86
movzx ebp, byte [esp + 0x84]
mov edi, eax
jmp 0x4879b2
call fcn.00475ee0
jmp fcn.00487570