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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x14]
cmp eax, dword [ecx + 8]
jbe 0x47eca8
sub esp, 0x94
mov edx, dword [esp + 0x98]
movzx ebx, byte [edx + 0xf]
and ebx, 0x1f
cmp ebx, 0x14
jne 0x47ec6c
mov ebx, dword [edx + 0x28]
test ebx, ebx
je 0x47ec5d
mov ebx, dword [esp + 0x9c]
movzx ebp, byte [ebx + 0xf]
and ebp, 0x1f
cmp ebp, 0x14
jne 0x47e901
xor eax, eax
xor ecx, ecx
jmp 0x47e608
mov ebp, dword [esp + 0x1c]
lea eax, [ebp + 1]
mov ebp, dword [esp + 0x9c]
mov ebx, ebp
mov ecx, edx
mov edx, dword [esp + 0x98]
cmp dword [ebx + 0x28], eax
jle 0x47e8f2
mov ebp, dword [edx + 0x24]
mov esi, dword [edx + 0x28]
cmp esi, ecx
jbe 0x47ec9e
mov dword [esp + 0x1c], eax
mov dword [esp + 0x50], ebp
mov dword [esp + 0x24], ecx
lea eax, [ebp + ecx*8]
mov eax, dword [eax]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.00458ad0
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x28]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x1c]
cmp ebp, edx
jae 0x47ec95
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], ecx
lea edx, [ecx + ebp*8]
mov edx, dword [edx]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00458ad0
mov eax, dword [esp + 8]
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
test eax, eax
je 0x47e6a3
lea edx, [eax + 3]
mov dword [esp + 0x54], edx
movzx edx, byte [eax + 1]
shl edx, 8
movzx ebx, byte [eax + 2]
or ebx, edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x47e6d3
lea ebx, [edx + 3]
mov dword [esp + 0x6c], ebx
movzx ebx, byte [edx + 1]
shl ebx, 8
movzx ebp, byte [edx + 2]
or ebp, ebx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x44], eax
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x54]
lea edi, [esp + 0x6c]
cmp dword [edi + 4], ebx
je 0x47e868
xor ecx, ecx
test cl, cl
je 0x47e858
movzx ebx, byte [edx]
test bl, 1
je 0x47e726
mov edx, dword [esp + 0x24]
inc edx
mov ebx, dword [esp + 0x98]
cmp dword [ebx + 0x28], edx
jg 0x47e5ef
mov byte [esp + 0xa0], 1
add esp, 0x94
ret
mov dword [esp], edx
call fcn.0047af10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x47e851
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
test ecx, ecx
je 0x47e780
lea edx, [ecx + 3]
mov dword [esp + 0x8c], edx
movzx edx, byte [ecx + 1]
shl edx, 8
movzx ecx, byte [ecx + 2]
or edx, ecx
mov dword [esp + 0x90], edx
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call fcn.0047af10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x47e844
mov edx, dword [esp + 0x9c]
mov ebx, dword [edx + 0x20]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
test ebx, ebx
je 0x47e7f4
lea ebp, [ebx + 3]
mov dword [esp + 0x84], ebp
movzx ebp, byte [ebx + 1]
shl ebp, 8
movzx ebx, byte [ebx + 2]
or ebp, ebx
mov dword [esp + 0x88], ebp
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0x14]
cmp esi, ebp
je 0x47e81a
mov ebx, dword [esp + 0x98]
mov edx, dword [esp + 0x24]
jmp 0x47e5ef
mov eax, dword [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
call fcn.00402950
movzx eax, byte [esp + 0xc]
test al, al
jne 0x47e702
mov edx, dword [esp + 0x9c]
jmp 0x47e80a
mov edx, dword [esp + 0x9c]
mov ebp, eax
mov ebx, ecx
jmp 0x47e802
mov edx, eax
jmp 0x47e78e
mov ebx, dword [esp + 0x98]
mov edx, dword [esp + 0x24]
jmp 0x47e5ef
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
call fcn.00402950
movzx eax, byte [esp + 0xc]
test al, al
jne 0x47e890
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x4c]
xor ecx, ecx
jmp 0x47e6f2
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x48]
lea ecx, [ecx + eax*8 + 4]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x9c]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.00458b10
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x50]
lea ecx, [ecx + eax*8 + 4]
mov ecx, dword [ecx]
mov edx, dword [esp + 8]
mov dword [esp + 0x40], edx
mov ebx, dword [esp + 0x98]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00458b10
mov eax, dword [esp + 0x40]
cmp dword [esp + 8], eax
sete cl
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x4c]
jmp 0x47e6f2
mov byte [esp + 0xa0], 0
add esp, 0x94
ret
mov dword [esp], ebx
call fcn.0047b320
mov eax, dword [esp + 4]
test eax, eax
je 0x47ec4e
movzx ebp, word [eax + 4]
test bp, bp
jne 0x47ec34
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x3c], eax
mov ebx, dword [esp + 0x98]
xor ebp, ebp
xor esi, esi
jmp 0x47e956
mov edi, dword [esp + 0x20]
lea ebp, [edi + 1]
mov edi, dword [esp + 0x3c]
mov eax, edi
mov ecx, dword [esp + 0x10]
mov esi, edx
mov edx, dword [esp + 0x30]
movzx edi, word [eax + 4]
cmp edi, ebp
jle 0x47ec25
mov edi, dword [ebx + 0x24]
mov edx, dword [ebx + 0x28]
cmp edx, esi
jbe 0x47ec82
mov dword [esp + 0x50], edi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], esi
lea eax, [edi + esi*8]
mov eax, dword [eax]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00458ad0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
cmp ecx, edx
jbe 0x47ec7b
mov dword [esp + 0x4c], eax
shl edx, 4
mov ecx, dword [esp + 0x30]
mov ebx, dword [ecx + edx]
mov edx, dword [ecx + edx + 4]
mov dword [esp + 0x2c], edx
nop
mov ebp, dword [esp + 0x9c]
mov dword [esp], ebp
mov dword [esp + 4], ebx
call fcn.00458ad0
mov eax, dword [esp + 8]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
test eax, eax
je 0x47ea01
lea edx, [eax + 3]
mov dword [esp + 0x7c], edx
movzx edx, byte [eax + 1]
shl edx, 8
movzx ebx, byte [eax + 2]
or ebx, edx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x47ea31
lea ebx, [edx + 3]
mov dword [esp + 0x74], ebx
movzx ebx, byte [edx + 1]
shl ebx, 8
movzx ebp, byte [edx + 2]
or ebp, ebx
mov dword [esp + 0x78], ebp
mov dword [esp + 0x44], eax
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x74]
lea edi, [esp + 0x74]
cmp dword [edi + 4], ebx
je 0x47eba5
xor ecx, ecx
test cl, cl
je 0x47eb95
movzx ebx, byte [edx]
test bl, 1
je 0x47ea87
mov edx, dword [esp + 0x28]
inc edx
mov ebx, dword [esp + 0x98]
cmp dword [ebx + 0x28], edx
jg 0x47e93f
mov byte [esp + 0xa0], 1
add esp, 0x94
ret
mov dword [esp], edx
call fcn.0047af10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x47eb8e
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
test ecx, ecx
je 0x47ead5
lea edx, [ecx + 3]
mov dword [esp + 0x64], edx
movzx edx, byte [ecx + 1]
shl edx, 8
movzx ecx, byte [ecx + 2]
or edx, ecx
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call fcn.0047af10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
test eax, eax
je 0x47eb38
mov edx, dword [esp + 0x18]
cmp eax, edx
je 0x47eb15
mov ebx, dword [esp + 0x98]
mov edx, dword [esp + 0x28]
jmp 0x47e93f
mov eax, dword [esp + 0x34]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00402950
movzx eax, byte [esp + 0xc]
test al, al
jne 0x47ea63
jmp 0x47eb05
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
mov edx, dword [esp + 0x9c]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.00458ad0
mov eax, dword [esp + 8]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
test eax, eax
je 0x47eb81
lea edx, [eax + 3]
mov dword [esp + 0x5c], edx
movzx edx, byte [eax + 1]
shl edx, 8
movzx ebx, byte [eax + 2]
or ebx, edx
mov dword [esp + 0x60], ebx
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
jmp 0x47eafd
mov edx, eax
jmp 0x47eadd
mov ebx, dword [esp + 0x98]
mov edx, dword [esp + 0x28]
jmp 0x47e93f
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
call fcn.00402950
movzx eax, byte [esp + 0xc]
test al, al
jne 0x47ebcd
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x4c]
xor ecx, ecx
jmp 0x47ea53
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov ecx, dword [esp + 0x2c]
mov dword [esp + 4], ecx
call fcn.00458b10
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x50]
lea ecx, [ecx + eax*8 + 4]
mov ecx, dword [ecx]
mov edx, dword [esp + 8]
mov dword [esp + 0x40], edx
mov ebx, dword [esp + 0x98]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00458b10
mov eax, dword [esp + 0x40]
cmp dword [esp + 8], eax
sete cl
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x4c]
jmp 0x47ea53
mov byte [esp + 0xa0], 0
add esp, 0x94
ret
mov esi, dword [eax + 8]
movzx edx, bp
lea ebp, [eax + esi]
cmp edx, 0x10000
ja 0x47ec8b
mov ecx, edx
mov edx, ebp
jmp 0x47e926
mov byte [esp + 0xa0], 0
add esp, 0x94
ret
mov byte [esp + 0xa0], 1
add esp, 0x94
ret
mov byte [esp + 0xa0], 0
add esp, 0x94
ret
mov eax, edx
call fcn.0045c3b0
mov eax, esi
mov ecx, edx
call fcn.0045c3b0
mov ebx, 0x10000
call fcn.0045c430
mov eax, ebp
mov ecx, edx
call fcn.0045c3b0
mov eax, ecx
mov ecx, esi
call fcn.0045c3b0
nop
call fcn.0045ade0
jmp fcn.0047e590