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

Disassembly:
mov eax, dword [esp + 0x14]
sub esp, 0xd4
push ebx
mov ebx, dword [esp + 0xe4]
push ebp
push esi
push edi
xor edi, edi
dec eax
cmp eax, 4
mov edx, 1
jl 0x471191
mov eax, 4
sub eax, ebx
mov dword [esp + 0x18], eax
mov eax, 0xc
sub eax, ebx
mov dword [esp + 0x1c], eax
mov ebp, 0xfffffffc
mov eax, 0xfffffff4
xor esi, esi
sub ebp, ebx
sub eax, ebx
lea ecx, [ebx + 0x14]
mov dword [esp + 0x50], eax
fld dword [ecx - 8]
fcomp dword [esi + ebx + 4]
fnstsw ax
test ah, 5
jp 0x47113a
mov eax, dword [esp + 0x50]
mov edi, edx
lea esi, [eax + ecx]
fld dword [ecx]
fcomp dword [esi + ebx + 4]
fnstsw ax
test ah, 5
jp 0x47114d
lea edi, [edx + 1]
lea esi, [ecx + ebp]
fld dword [ecx + 8]
fcomp dword [esi + ebx + 4]
fnstsw ax
test ah, 5
jp 0x471165
mov eax, dword [esp + 0x18]
lea edi, [edx + 2]
lea esi, [eax + ecx]
fld dword [ecx + 0x10]
fcomp dword [esi + ebx + 4]
fnstsw ax
test ah, 5
jp 0x47117d
mov eax, dword [esp + 0x1c]
lea edi, [edx + 3]
lea esi, [eax + ecx]
mov eax, dword [esp + 0xf8]
add edx, 4
add eax, 0xfffffffd
add ecx, 0x20
cmp edx, eax
jl 0x471123
mov eax, dword [esp + 0xf8]
cmp edx, eax
jge 0x4711ce
lea esi, [edi*8]
lea ecx, [ebx + edx*8 + 4]
mov ebp, eax
lea esp, [esp]
fld dword [ecx]
fcomp dword [esi + ebx + 4]
fnstsw ax
test ah, 5
jp 0x4711c6
mov edi, edx
lea esi, [edx*8]
inc edx
add ecx, 8
cmp edx, ebp
jl 0x4711b0
mov ecx, dword [esp + 0xf8]
lea eax, [edi - 1]
test eax, eax
jge 0x4711e0
add eax, ecx
jmp 0x4711e6
cmp eax, ecx
jl 0x4711e6
sub eax, ecx
mov edx, eax
fld dword [ebx + edx*8]
mov dword [esp + 0x10], eax
call fcn.00461da0
fld dword [ebx + edi*8]
mov esi, eax
call fcn.00461da0
mov ecx, dword [esp + 0x10]
fld dword [ebx + ecx*8 + 4]
mov ebp, eax
fsub dword [ebx + edi*8 + 4]
lea eax, [ebx + edi*8 + 4]
mov dword [esp + 0x18], eax
call fcn.00461da0
cmp ebp, esi
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], ebp
jle 0x47123b
mov ecx, ebp
sub ecx, esi
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x68], 0xffffffff
jmp 0x471249
sub esi, ebp
mov dword [esp + 0x5c], esi
mov dword [esp + 0x68], 1
mov edx, dword [esp + 0xf4]
mov ecx, dword [esp + 0x10]
mov ebx, dword [edx + edi*8]
mov ecx, dword [edx + ecx*8]
cmp ebx, ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], ebx
jle 0x471290
mov esi, ebx
sub esi, ecx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x98], 0xffffffff
jmp 0x4712a4
sub ecx, ebx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x98], 1
mov ecx, dword [esp + 0x10]
mov esi, dword [edx + edi*8 + 4]
mov ecx, dword [edx + ecx*8 + 4]
cmp esi, ecx
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], esi
jle 0x4712e3
mov edx, esi
sub edx, ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x80], 0xffffffff
jmp 0x4712f4
sub ecx, esi
mov dword [esp + 0x74], ecx
mov dword [esp + 0x80], 1
inc edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
jns 0x47130a
mov edx, dword [esp + 0xf8]
add edi, edx
jmp 0x471317
mov eax, dword [esp + 0xf8]
cmp edi, eax
jl 0x471317
sub edi, eax
mov eax, dword [esp + 0xf0]
mov ecx, edi
fld dword [eax + ecx*8]
mov dword [esp + 0x14], edi
call fcn.00461da0
mov edx, dword [esp + 0xf0]
mov ecx, dword [esp + 0x18]
mov edi, eax
mov eax, dword [esp + 0x14]
fld dword [edx + eax*8 + 4]
fsub dword [ecx]
call fcn.00461da0
cmp ebp, edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], ebp
jle 0x471368
sub ebp, edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x34], 0xffffffff
jmp 0x471376
sub edi, ebp
mov dword [esp + 0x28], edi
mov dword [esp + 0x34], 1
mov edx, dword [esp + 0xf4]
mov edi, dword [esp + 0x14]
mov ecx, dword [edx + edi*8]
xor ebp, ebp
cmp ebx, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebx
jle 0x4713aa
sub ebx, ecx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x4c], 0xffffffff
jmp 0x4713b8
sub ecx, ebx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x4c], 1
mov ecx, dword [edx + edi*8 + 4]
cmp esi, ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], esi
jle 0x4713ec
sub esi, ecx
mov dword [esp + 0xa4], esi
mov dword [esp + 0xb0], 0xffffffff
jmp 0x471400
sub ecx, esi
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xb0], 1
mov edx, dword [esp + 0x18]
fld dword [edx]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
call fcn.00461da0
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x60]
cmp ecx, eax
jl 0x471556
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0xf8]
lea eax, [ebx - 1]
test eax, eax
jge 0x471443
add eax, ecx
jmp 0x471449
cmp eax, ecx
jl 0x471449
sub eax, ecx
mov ebp, dword [esp + 0xf0]
mov edx, eax
fld dword [ebp + edx*8]
mov dword [esp + 0x10], eax
call fcn.00461da0
fld dword [ebp + ebx*8]
mov edi, eax
call fcn.00461da0
mov esi, eax
mov eax, dword [esp + 0x10]
fld dword [ebp + eax*8 + 4]
fsub dword [ebp + ebx*8 + 4]
call fcn.00461da0
xor ebp, ebp
cmp esi, edi
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], esi
jle 0x47149b
sub esi, edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x68], 0xffffffff
jmp 0x4714a9
sub edi, esi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x68], 1
mov esi, dword [esp + 0xf4]
mov edi, dword [esp + 0x10]
mov ecx, dword [esi + ebx*8]
mov edx, dword [esi + edi*8]
cmp ecx, edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x84], ebp
mov dword [esp + 0x88], ecx
jle 0x4714ea
sub ecx, edx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x98], 0xffffffff
jmp 0x4714fe
sub edx, ecx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x98], 1
mov ecx, dword [esi + ebx*8 + 4]
mov edx, dword [esi + edi*8 + 4]
cmp ecx, edx
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ecx
jle 0x471533
sub ecx, edx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x80], 0xffffffff
jmp 0x471544
sub edx, ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x80], 1
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
cmp ebx, dword [esp + 0x14]
je 0x471692
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x2c]
jl 0x47169d
mov eax, dword [esp + 0x14]
mov ebx, eax
inc eax
jns 0x471578
mov edx, dword [esp + 0xf8]
add eax, edx
jmp 0x471585
mov ecx, dword [esp + 0xf8]
cmp eax, ecx
jl 0x471585
sub eax, ecx
mov ebp, dword [esp + 0xf0]
fld dword [ebp + eax*8]
mov dword [esp + 0x14], eax
call fcn.00461da0
fld dword [ebp + ebx*8]
mov edi, eax
call fcn.00461da0
mov ecx, dword [esp + 0x14]
fld dword [ebp + ecx*8 + 4]
mov esi, eax
fsub dword [ebp + ebx*8 + 4]
call fcn.00461da0
cmp esi, edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], esi
jle 0x4715d7
sub esi, edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x34], 0xffffffff
jmp 0x4715e5
sub edi, esi
mov dword [esp + 0x28], edi
mov dword [esp + 0x34], 1
mov esi, dword [esp + 0xf4]
mov edi, dword [esp + 0x14]
mov ecx, dword [esi + ebx*8]
mov edx, dword [esi + edi*8]
cmp ecx, edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], ecx
jle 0x47161e
sub ecx, edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x4c], 0xffffffff
jmp 0x47162c
sub edx, ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x4c], 1
mov ecx, dword [esi + ebx*8 + 4]
mov edx, dword [esi + edi*8 + 4]
cmp ecx, edx
mov ebp, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ebp
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], ecx
jle 0x47166a
sub ecx, edx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xb0], 0xffffffff
jmp 0x47167e
sub edx, ecx
mov dword [esp + 0xa4], edx
mov dword [esp + 0xb0], 1
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
cmp ebx, dword [esp + 0x10]
jne 0x4716a1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov ebp, dword [esp + 0x48]
mov eax, dword [esp + 0x18]
test eax, eax
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
jl 0x471964
mov edi, dword [esp + 0xe8]
cmp eax, dword [edi + 4]
jge 0x471964
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x58]
mov edx, dword [esp + 0x88]
mov eax, edi
sub eax, ebp
cmp edx, ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0xd0], edx
jle 0x471700
mov ecx, edx
sub ecx, ebx
mov dword [esp + 0xe0], 0xffffffff
jmp 0x47170f
mov ecx, ebx
sub ecx, edx
mov dword [esp + 0xe0], 1
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0xa0]
cmp edx, esi
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xdc], eax
mov dword [esp + 0xb8], edx
jle 0x471744
mov ecx, edx
sub ecx, esi
mov dword [esp + 0xc8], 0xffffffff
jmp 0x471753
mov ecx, esi
sub ecx, edx
mov dword [esp + 0xc8], 1
cmp ebp, edi
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc4], eax
mov dword [esp + 0x1c], ebp
jge 0x47194e
mov ebp, dword [esp + 0xfc]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0xb8]
mov edx, dword [esp + 0xdc]
mov ecx, eax
mov eax, dword [esp + 0x50]
lea esp, [esp]
test edi, edi
jl 0x4718ca
mov ebx, dword [esp + 0xe8]
cmp edi, dword [ebx]
jge 0x4718ca
mov esi, dword [esp + 0x1c]
mov eax, ebx
mov edx, dword [eax + 8]
imul edx, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
add edx, esi
lea esi, [eax + edx*4]
mov eax, dword [esp + 0xec]
mov ecx, dword [eax + 8]
imul ecx, dword [esp + 0xb8]
add ecx, dword [esp + 0xd0]
mov edx, dword [eax + 0xc]
movzx eax, byte [edx + ecx*4 + 3]
lea edi, [edx + ecx*4]
movzx ecx, byte [ebp + 0xc]
movzx ebx, byte [esi]
imul eax, ecx
mov ecx, dword [ebp]
add eax, 0x80
mov edx, eax
sar edx, 8
add edx, eax
movzx eax, byte [edi]
sub eax, ebx
add eax, ecx
sar edx, 8
imul eax, edx
add eax, 0x80
mov ecx, eax
sar ecx, 8
add ecx, eax
sar ecx, 8
add ecx, ebx
cmp ecx, 0xff
jle 0x471829
mov ecx, 0xff
mov eax, ecx
jmp 0x471833
test ecx, ecx
jle 0x471831
mov eax, ecx
jmp 0x471833
xor eax, eax
movzx ebx, byte [esi + 1]
mov byte [esi], al
movzx eax, byte [edi + 1]
add eax, dword [ebp + 4]
sub eax, ebx
imul eax, edx
add eax, 0x80
mov ecx, eax
sar ecx, 8
add ecx, eax
sar ecx, 8
add ecx, ebx
cmp ecx, 0xff
jle 0x471867
mov ecx, 0xff
mov eax, ecx
jmp 0x471871
test ecx, ecx
jle 0x47186f
mov eax, ecx
jmp 0x471871
xor eax, eax
movzx ebx, byte [esi + 2]
mov byte [esi + 1], al
movzx eax, byte [edi + 2]
add eax, dword [ebp + 8]
sub eax, ebx
imul eax, edx
add eax, 0x80
mov ecx, eax
sar ecx, 8
add ecx, eax
sar ecx, 8
add ecx, ebx
cmp ecx, 0xff
jle 0x4718a4
mov ecx, 0xff
jmp 0x4718aa
test ecx, ecx
jg 0x4718aa
xor ecx, ecx
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0xdc]
mov byte [esi + 2], cl
mov ecx, dword [esp + 0xc4]
mov esi, dword [esp + 0xb8]
add edx, dword [esp + 0xd4]
cmp edx, eax
mov dword [esp + 0xdc], edx
jle 0x471904
mov edi, dword [esp + 0xd0]
mov ebx, dword [esp + 0xe0]
sub edx, eax
add edi, ebx
cmp edx, eax
jg 0x4718e3
mov dword [esp + 0xd0], edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0xdc], edx
add ecx, dword [esp + 0xbc]
cmp ecx, eax
mov dword [esp + 0xc4], ecx
jle 0x47193d
jmp 0x471920
mov ebx, dword [esp + 0xc8]
sub ecx, eax
add esi, ebx
cmp ecx, eax
jg 0x471920
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xb8], esi
mov ebx, dword [esp + 0x24]
inc edi
cmp edi, ebx
mov dword [esp + 0x1c], edi
jl 0x471790
emms
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x48]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x64]
add eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x60]
mov dword [esp + 0x64], eax
jle 0x471996
jmp 0x471980
mov edi, dword [esp + 0x68]
add dword [esp + 0x58], edi
mov edi, dword [esp + 0x60]
sub eax, edi
cmp eax, edi
jg 0x471980
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x8c]
inc eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x94]
add eax, edi
cmp eax, dword [esp + 0x90]
mov dword [esp + 0x94], eax
jle 0x4719e2
nop
mov edi, dword [esp + 0x98]
add dword [esp + 0x88], edi
mov edi, dword [esp + 0x90]
sub eax, edi
cmp eax, edi
jg 0x4719c0
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x84]
mov edi, dword [esp + 0x74]
inc eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x7c]
add eax, edi
cmp eax, dword [esp + 0x78]
mov dword [esp + 0x7c], eax
jle 0x471a29
jmp 0x471a10
mov edi, dword [esp + 0x80]
add dword [esp + 0x70], edi
mov edi, dword [esp + 0x78]
sub eax, edi
cmp eax, edi
jg 0x471a10
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x6c]
add ecx, dword [esp + 0x28]
inc eax
cmp ecx, edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x30], ecx
jle 0x471a56
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x34]
sub ecx, edx
add eax, edi
cmp ecx, edx
jg 0x471a42
mov dword [esp + 0x30], ecx
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x20]
add ebp, dword [esp + 0x40]
inc edx
cmp ebp, esi
mov dword [esp + 0x20], edx
mov dword [esp + 0x48], ebp
jle 0x471a84
jmp 0x471a70
mov edx, dword [esp + 0x4c]
sub ebp, esi
add ebx, edx
cmp ebp, esi
jg 0x471a70
mov dword [esp + 0x48], ebp
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0xac]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
add eax, esi
inc edi
cmp eax, ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0xac], eax
jle 0x471ad6
mov edx, dword [esp + 0xa0]
mov esi, dword [esp + 0xb0]
lea ecx, [ecx]
sub eax, ecx
add edx, esi
cmp eax, ecx
jg 0x471ac0
mov dword [esp + 0xac], eax
mov dword [esp + 0xa0], edx
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x9c], ecx
inc eax
jmp 0x471419