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

Disassembly:
mov ecx, dword [0x5efcb0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x47b502
sub esp, 0x64
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x47b0f6
cmp ebx, 1
je 0x47b0cb
mov ecx, dword [esp + 0x6c]
cmp ecx, ebx
je 0x47b092
jl 0x47b086
cmp dword [0x5efbbc], ebx
jge 0x47b046
mov edx, ecx
sub ecx, ebx
mov dword [esp + 0x60], ecx
mov ebp, dword [esp + 0x70]
movzx esi, byte [ebp]
xchg esi, eax
mov byte [esp + 0x1a], al
xchg esi, eax
movzx edi, byte [ebp + 1]
xchg edi, eax
mov byte [esp + 0x18], al
xchg edi, eax
lea eax, [ecx + 1]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x3c]
jmp 0x47b318
mov edx, ecx
sub ecx, ebx
mov dword [esp + 0x60], ecx
mov ebp, dword [esp + 0x70]
movzx esi, byte [ebp]
xchg esi, eax
mov byte [esp + 0x1b], al
xchg esi, eax
movzx edi, byte [ebp + 1]
xchg edi, eax
mov byte [esp + 0x19], al
xchg edi, eax
lea eax, [ecx + 1]
mov dword [esp + 0x20], eax
mov dword [esp + 0x54], eax
xor eax, eax
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x54]
jmp 0x47b142
mov dword [esp + 0x78], 0xffffffff
add esp, 0x64
ret
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00403b40
movzx eax, byte [esp + 0xc]
test al, al
je 0x47b0bf
mov dword [esp + 0x78], 0
add esp, 0x64
ret
mov dword [esp + 0x78], 0xffffffff
add esp, 0x64
ret
mov eax, dword [esp + 0x70]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 4], ecx
mov byte [esp + 8], al
call fcn.0047af70
mov eax, dword [esp + 0xc]
mov dword [esp + 0x78], eax
add esp, 0x64
ret
mov dword [esp + 0x78], 0
add esp, 0x64
ret
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x70]
movzx edi, byte [esp + 0x19]
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x6c]
mov edx, esi
movzx esi, byte [esp + 0x1b]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x28]
cmp ebp, eax
jge 0x47b2b9
cmp edx, ebp
jbe 0x47b2ea
mov ebx, dword [esp + 0x68]
lea edi, [ebx + ebp]
xchg esi, eax
cmp byte [edi], al
xchg esi, eax
je 0x47b1c0
cmp edx, eax
jb 0x47b2e3
lea edi, [ebp + 1]
cmp edi, eax
ja 0x47b2da
sub ecx, ebp
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, edi
add ecx, ebx
mov dword [esp], ecx
mov dword [esp + 4], edx
xchg esi, eax
mov byte [esp + 8], al
xchg esi, eax
call fcn.0047af70
mov eax, dword [esp + 0xc]
test eax, eax
jl 0x47b243
mov ebx, dword [esp + 0x28]
lea ebx, [eax + ebx + 1]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x6c]
movzx esi, byte [esp + 0x1b]
mov ebp, ebx
mov ebx, dword [esp + 0x68]
lea edi, [ebp + 1]
cmp edx, edi
jbe 0x47b2d1
mov dword [esp + 0x28], ebp
mov dword [esp + 0x5c], edi
lea ecx, [ebx + ebp + 1]
movzx esi, byte [esp + 0x19]
xchg esi, eax
cmp byte [ecx], al
xchg esi, eax
jne 0x47b22a
mov esi, dword [esp + 0x74]
lea ecx, [esi + ebp]
cmp edx, ecx
jb 0x47b2cc
cmp ebp, ecx
ja 0x47b2c5
mov eax, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ebp
lea ecx, [ebx + esi]
mov dword [esp], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00403b40
movzx eax, byte [esp + 0xc]
test al, al
jne 0x47b24f
mov edi, dword [esp + 0x5c]
mov dword [esp], edi
call fcn.00403920
mov eax, dword [esp + 0x30]
inc eax
cmp dword [esp + 4], eax
jge 0x47b102
jmp 0x47b25b
mov dword [esp + 0x78], 0xffffffff
add esp, 0x64
ret
mov eax, dword [esp + 0x28]
mov dword [esp + 0x78], eax
add esp, 0x64
ret
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x28]
sub eax, ecx
dec eax
mov edx, eax
neg eax
sar eax, 0x1f
mov ebx, dword [esp + 0x5c]
and ebx, eax
mov eax, dword [esp + 0x68]
add eax, ebx
mov dword [esp], eax
mov dword [esp + 4], edx
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], eax
call fcn.004038e0
mov eax, dword [esp + 0x10]
test eax, eax
jl 0x47b2ad
mov ecx, dword [esp + 0x28]
lea eax, [eax + ecx + 1]
mov dword [esp + 0x78], eax
add esp, 0x64
ret
mov dword [esp + 0x78], 0xffffffff
add esp, 0x64
ret
mov dword [esp + 0x78], 0xffffffff
add esp, 0x64
ret
mov eax, ebp
call fcn.00475890
call fcn.00475850
mov eax, edi
mov ecx, edx
call fcn.00475830
mov ecx, eax
mov eax, edi
call fcn.00475890
mov ecx, eax
call fcn.00475850
mov eax, ebp
mov ecx, edx
call fcn.00475830
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x74]
movzx edi, byte [esp + 0x18]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x34]
mov ebp, dword [esp + 0x24]
cmp ebp, eax
jge 0x47b4c1
cmp edx, ebp
jbe 0x47b4f8
mov ebx, dword [esp + 0x68]
lea ecx, [ebx + ebp]
xchg esi, eax
cmp byte [ecx], al
xchg esi, eax
je 0x47b39b
cmp edx, eax
jb 0x47b4f1
lea ecx, [ebp + 1]
cmp ecx, eax
ja 0x47b4e6
mov eax, dword [esp + 0x60]
sub eax, ebp
mov edi, eax
neg eax
sar eax, 0x1f
and eax, ecx
add eax, ebx
mov dword [esp], eax
mov dword [esp + 4], edi
xchg esi, eax
mov byte [esp + 8], al
xchg esi, eax
call fcn.0047af70
mov eax, dword [esp + 0xc]
test eax, eax
jl 0x47b4b5
mov ebx, dword [esp + 0x24]
lea ebx, [eax + ebx + 1]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x6c]
movzx esi, byte [esp + 0x1a]
movzx edi, byte [esp + 0x18]
mov ebp, ebx
mov ebx, dword [esp + 0x68]
lea ecx, [ebp + 1]
cmp edx, ecx
jbe 0x47b4dd
mov dword [esp + 0x24], ebp
mov dword [esp + 0x5c], ecx
lea ebp, [ebp + ebx + 1]
xchg edi, eax
cmp byte [ebp], al
xchg edi, eax
jne 0x47b420
mov ebp, dword [esp + 0x74]
mov edi, dword [esp + 0x24]
lea esi, [edi + ebp]
cmp edx, esi
jb 0x47b4d6
cmp edi, esi
ja 0x47b4cd
mov eax, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, edi
lea ecx, [ebp + ebx]
mov dword [esp], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00403b40
movzx eax, byte [esp + 0xc]
test al, al
jne 0x47b4a9
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
movzx esi, byte [esp + 0x1a]
movzx edi, byte [esp + 0x18]
mov ebp, dword [esp + 0x2c]
inc ebp
sar ecx, 4
add ecx, 4
cmp ecx, ebp
jg 0x47b43f
mov ecx, edi
mov edi, dword [esp + 0x5c]
cmp edi, eax
jge 0x47b2f3
jmp 0x47b44a
mov ecx, edi
mov edi, dword [esp + 0x5c]
jmp 0x47b2f3
lea eax, [0x53ac48]
mov dword [esp], eax
mov eax, dword [esp + 0x24]
sub edx, eax
lea ecx, [edx - 1]
mov edx, ecx
neg ecx
sar ecx, 0x1f
and edi, ecx
lea ecx, [edi + ebx]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x10], ecx
call fcn.0047b510
mov eax, dword [esp + 0x14]
test eax, eax
jge 0x47b499
mov dword [esp + 0x78], 0xffffffff
add esp, 0x64
ret
mov ecx, dword [esp + 0x24]
lea eax, [eax + ecx + 1]
mov dword [esp + 0x78], eax
add esp, 0x64
ret
mov eax, dword [esp + 0x24]
mov dword [esp + 0x78], eax
add esp, 0x64
ret
mov dword [esp + 0x78], 0xffffffff
add esp, 0x64
ret
mov dword [esp + 0x78], 0xffffffff
add esp, 0x64
ret
mov eax, edi
mov ecx, esi
call fcn.00475890
mov ecx, esi
call fcn.00475850
mov eax, ecx
mov ecx, edx
call fcn.00475830
mov edx, eax
mov eax, ecx
mov ecx, edx
call fcn.00475890
mov ecx, eax
call fcn.00475850
mov eax, ebp
mov ecx, edx
call fcn.00475830
nop
call fcn.004743b0
jmp fcn.0047afc0