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

Disassembly:
mov ecx, dword [0x587cec]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x47ec2c
sub esp, 0x74
mov eax, dword [esp + 0x8c]
test eax, eax
sete dl
mov ebx, dword [esp + 0x90]
test ebx, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x47e39f
xor ecx, ecx
jmp 0x47e3a6
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x98]
mov edx, dword [edx]
add edx, 0xffffffc4
neg edx
mov ecx, edx
mov esi, eax
shl eax, cl
shl ebx, cl
lea edi, [ecx - 0x20]
mov ecx, edi
shl esi, cl
neg ecx
mov ebp, dword [esp + 0x8c]
shr ebp, cl
cmp edi, 0x20
sbb edi, edi
and esi, edi
cmp ecx, 0x20
sbb edi, edi
and ebp, edi
cmp edx, 0x20
sbb edx, edx
and ebx, edx
or ebx, ebp
and eax, edx
or ebx, esi
mov edx, dword [esp + 0x64]
jmp 0x47e3ff
shl ebx, 1
mov ebp, eax
shr ebp, 0x1f
or ebx, ebp
shl eax, 1
dec edx
test ebx, ebx
xchg ebp, ebx
setne bl
xchg ebp, ebx
test eax, eax
xchg esi, ebx
setne bl
xchg esi, ebx
or ebp, esi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x47e42f
test ebx, 0x10000000
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, 1
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x47e3f3
mov ecx, dword [esp + 0x84]
cmp ecx, 0xf
jae 0x47e598
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], 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 + 0x54], edi
neg ecx
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x58]
shr edx, cl
mov dword [esp + 0x4c], edx
lea edx, [ebp - 0x3c]
neg edx
mov dword [esp + 0x48], edx
mov ecx, edx
mov edi, dword [esp + 0x58]
shr edi, cl
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x60]
shr edi, cl
mov dword [esp + 0x44], edi
lea edi, [ecx - 0x20]
mov dword [esp + 0x40], edi
mov ecx, edi
mov edx, dword [esp + 0x60]
shr edx, cl
mov dword [esp + 0x3c], edx
neg ecx
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x60]
shl edx, cl
cmp ebp, 0x20
sbb ebp, ebp
and ebx, ebp
and eax, ebp
mov dword [esp + 0x60], eax
cmp esi, 0x20
sbb ebp, ebp
mov esi, dword [esp + 0x54]
and esi, ebp
mov ebp, dword [esp + 0x50]
cmp ebp, 0x20
sbb ebp, ebp
mov eax, dword [esp + 0x4c]
and eax, ebp
or ebx, eax
or ebx, esi
and ebx, 0xfffffff
mov eax, dword [esp + 0x48]
cmp eax, 0x20
sbb ebp, ebp
mov esi, dword [esp + 0x58]
and esi, ebp
mov eax, dword [esp + 0x44]
and eax, ebp
cmp ecx, 0x20
sbb ecx, ecx
and edx, ecx
or edx, esi
cmp edi, 0x20
sbb esi, esi
mov dword [esp + 0x58], esi
mov edi, dword [esp + 0x3c]
and edi, esi
or edx, edi
mov edi, edx
and edx, 1
mov esi, dword [esp + 0x60]
or edx, esi
test edx, edx
seta dl
cmp ebx, 0x8000000
seta bl
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, edx
or esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
je 0x47e541
add edi, 1
adc eax, 0
mov edx, ecx
mov ecx, dword [esp + 0x48]
shl eax, cl
and eax, ebp
mov ebx, edi
shl edi, cl
mov ecx, dword [esp + 0x40]
mov esi, ebx
shl ebx, cl
mov ecx, ebp
mov ebp, dword [esp + 0x58]
and ebx, ebp
mov ebp, ecx
mov ecx, dword [esp + 0x38]
shr esi, cl
and esi, edx
or esi, eax
or ebx, esi
and edi, ebp
test ebx, 0x20000000
je 0x47e58b
shr edi, 1
mov eax, ebx
shl eax, 0x1f
or edi, eax
shr ebx, 1
mov eax, dword [esp + 0x5c]
lea edx, [eax + 1]
jmp 0x47e58f
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x84]
mov eax, edi
movzx ebp, byte [esp + 0x88]
xchg ebp, eax
cmp al, 0x58
xchg ebp, eax
jne 0x47e5af
lea esi, [0x4d90e4]
jmp 0x47e5b5
lea esi, [0x4d90d4]
mov dword [esp + 0x68], esi
mov dword [esp + 0x60], ebx
mov dword [esp + 0x58], eax
mov dword [esp + 0x64], edx
movzx edi, byte [esp + 0x89]
xchg edi, eax
test al, al
xchg edi, eax
je 0x47e657
mov edi, dword [esp + 0x7c]
inc edi
mov edx, dword [esp + 0x80]
cmp edx, edi
jb 0x47e5f9
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x28]
jmp 0x47e64c
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x4c3c20]
mov dword [esp + 0x10], eax
call fcn.00470510
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x60]
movzx ebp, byte [esp + 0x88]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x70], eax
mov edx, ecx
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x70]
mov byte [edi + esi - 1], 0x2d
jmp 0x47e666
mov edx, dword [esp + 0x80]
mov edi, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
add edi, 3
cmp edx, edi
jae 0x47e6b2
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 3
lea eax, [0x4c3c20]
mov dword [esp + 0x10], eax
call fcn.00470510
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0x60]
movzx ebp, byte [esp + 0x88]
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 + 0x60]
shl ebx, 4
shr eax, 0x1c
or eax, ebx
mov dword [esp + 0x60], eax
mov ebx, dword [esp + 0x58]
shl ebx, 4
mov dword [esp + 0x58], ebx
test ecx, ecx
jge 0x47e756
test eax, eax
xchg ebp, ebx
setne bl
xchg ebp, ebx
test ebx, ebx
setne al
or eax, ebp
test al, al
je 0x47e748
lea eax, [edi + 1]
cmp edx, eax
jae 0x47e736
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x4c3c20]
mov dword [esp + 0x10], eax
call fcn.00470510
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x58]
mov byte [eax + esi - 1], 0x2e
mov ecx, dword [esp + 0x68]
mov ebp, dword [esp + 0x60]
jmp 0x47ebaa
test ecx, ecx
mov eax, dword [esp + 0x60]
movzx ebp, byte [esp + 0x88]
jle 0x47e7ac
inc edi
cmp edx, edi
jae 0x47e7a2
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x4c3c20]
mov dword [esp + 0x10], eax
call fcn.00470510
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0x58]
movzx ebp, byte [esp + 0x88]
mov byte [edi + esi - 1], 0x2e
jmp 0x47eb1b
mov dword [esp + 0x70], esi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x34], edx
xchg ebp, eax
mov byte [esp], al
xchg ebp, eax
call fcn.0047be90
movzx eax, byte [esp + 0x88]
cmp byte [esp + 4], al
jne 0x47e7d7
mov eax, 0x70
jmp 0x47e7dc
mov eax, 0x50
mov ecx, dword [esp + 0x5c]
inc ecx
mov edx, dword [esp + 0x34]
cmp edx, ecx
jb 0x47e7ef
mov esi, dword [esp + 0x70]
jmp 0x47e82a
mov byte [esp + 0x22], al
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x4c3c20]
mov dword [esp + 0x10], eax
call fcn.00470510
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 + 0x64]
test ebx, ebx
jge 0x47e83f
neg ebx
mov eax, 0x2d
jmp 0x47e844
mov eax, 0x2b
inc ecx
cmp edx, ecx
jae 0x47e888
mov dword [esp + 0x64], 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, [0x4c3c20]
mov dword [esp + 0x10], eax
call fcn.00470510
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx eax, byte [esp + 0x22]
mov ebx, dword [esp + 0x64]
mov byte [ecx + esi - 1], al
cmp ebx, 0x64
jge 0x47e907
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 0x47e8f4
mov dword [esp + 0x64], edx
mov dword [esp + 0x5c], edi
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 2
lea eax, [0x4c3c20]
mov dword [esp + 0x10], eax
call fcn.00470510
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x5c]
mov ebp, edx
mov edx, dword [esp + 0x64]
lea eax, [edx + 0x30]
mov byte [ecx + esi - 2], al
lea eax, [edi + 0x30]
mov byte [ecx + esi - 1], al
jmp 0x47eae2
mov dword [esp + 0x6c], esi
cmp ebx, 0x3e8
jge 0x47e9dd
add ecx, 3
mov dword [esp + 0x64], ecx
mov eax, 0xcccccccd
mov ebp, edx
imul ebx
add edx, ebx
mov edi, edx
sar edx, 0x1f
mov dword [esp + 0x5c], edx
sar edi, 3
mov eax, 0xcccccccd
imul edi
add edx, edi
sar edx, 3
mov esi, dword [esp + 0x5c]
sub edx, esi
lea edx, [edx + edx*4]
shl edx, 1
mov dword [esp + 0x5c], edx
lea esi, [edi + edi*4]
shl esi, 1
mov eax, ebx
mov ecx, 0x51eb851f
imul ecx
mov ecx, dword [esp + 0x5c]
sub edi, ecx
sub ebx, esi
mov ecx, dword [esp + 0x64]
cmp ebp, ecx
jb 0x47e974
mov esi, dword [esp + 0x6c]
jmp 0x47e9c0
mov dword [esp + 0x64], edx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x34], edi
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 3
lea eax, [0x4c3c20]
mov dword [esp + 0x10], eax
call fcn.00470510
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x34]
mov ebp, edx
mov edx, dword [esp + 0x64]
sar edx, 5
lea eax, [edx + 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 0x47eae2
add ecx, 4
mov dword [esp + 0x64], ecx
mov eax, ebx
mov ebp, 0x51eb851f
mov edi, edx
imul ebp
sar edx, 5
mov dword [esp + 0x5c], edx
movzx ebp, dl
imul ebp, ebp, 0x19a
shr ebp, 0xc
lea ebp, [ebp + ebp*4]
shl ebp, 1
mov eax, 0xcccccccd
imul ebx
add edx, ebx
mov dword [esp + 0x34], edx
sar edx, 3
mov dword [esp + 0x30], edx
mov eax, 0xcccccccd
imul edx
mov esi, dword [esp + 0x30]
add edx, esi
sar edx, 3
mov ecx, dword [esp + 0x34]
sar ecx, 0x1f
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 + 0x5c]
sub edx, ebp
sub esi, ecx
mov ecx, dword [esp + 0x34]
sub ebx, ecx
mov ecx, dword [esp + 0x64]
cmp edi, ecx
jb 0x47ea68
mov ebp, dword [esp + 0x6c]
jmp 0x47eabf
mov byte [esp + 0x23], dl
mov dword [esp + 0x64], eax
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 4
lea eax, [0x4c3c20]
mov dword [esp + 0x10], eax
call fcn.00470510
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x5c]
mov ebp, esi
mov edi, edx
movzx edx, byte [esp + 0x23]
mov esi, dword [esp + 0x34]
sar eax, 8
add eax, 0x30
mov byte [ecx + ebp - 4], al
lea eax, [edx + 0x30]
mov byte [ecx + ebp - 3], al
lea eax, [esi + 0x30]
mov byte [ecx + ebp - 2], al
lea eax, [ebx + 0x30]
mov byte [ecx + ebp - 1], al
mov esi, ebp
mov ebp, edi
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], ebp
add esp, 0x74
ret
mov byte [edi + esi - 1], al
mov eax, dword [esp + 0x60]
shl eax, 4
shr ebx, 0x1c
dec ecx
or eax, ebx
mov ebx, dword [esp + 0x58]
shl ebx, 4
movzx ebp, byte [esp + 0x88]
test ecx, ecx
jle 0x47e7ac
mov dword [esp + 0x60], eax
mov dword [esp + 0x58], ebx
inc edi
shr eax, 0x1c
and eax, 0xf
mov ebp, dword [esp + 0x68]
movzx eax, byte [ebp + eax]
cmp edx, edi
jae 0x47eafb
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, [0x4c3c20]
mov dword [esp + 0x10], eax
call fcn.00470510
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 + 0x58]
mov ebp, dword [esp + 0x68]
jmp 0x47eafb
xchg ebp, ebx
mov byte [eax + esi - 1], bl
xchg ebp, ebx
shl ebx, 4
mov ebp, dword [esp + 0x60]
mov edi, ebp
shr edi, 0x1c
or ebx, edi
shl ebp, 4
mov edi, ebp
mov ebp, ebx
mov ebx, edi
mov dword [esp + 0x60], ebx
test ebx, ebx
xchg edi, ebx
setne bl
xchg edi, ebx
test ebp, ebp
setne bl
or ebx, edi
test bl, bl
je 0x47ec1d
inc eax
mov ebx, ebp
shr ebp, 0x1c
and ebp, 0xf
movzx ebp, byte [ecx + ebp]
cmp edx, eax
jae 0x47eb8b
xchg ebp, eax
mov byte [esp + 0x23], al
xchg ebp, eax
mov dword [esp + 0x58], ebx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x4c3c20]
mov dword [esp + 0x10], eax
call fcn.00470510
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x68]
mov ebx, dword [esp + 0x58]
movzx ebp, byte [esp + 0x23]
jmp 0x47eb8b
movzx ebp, byte [esp + 0x88]
mov edi, eax
jmp 0x47e7ac
call fcn.004736a0
jmp fcn.0047e360