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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x74
mov eax, dword [0x51808c]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
push esi
mov esi, ecx
mov dword [esp + 0x28], esi
push edi
test esi, esi
je 0x47141a
xor edi, edi
xorps xmm0, xmm0
cmp byte [esi + 0x28], 0
mov dword [esp + 0x18], edi
movlpd qword [esp + 0x50], xmm0
jne 0x4711e2
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0x14]
je 0x4711eb
mov edi, 1
mov dword [esp + 0x18], edi
cmp dword [esi + 0x34], 0
movlpd qword [esp + 0x58], xmm0
jb 0x471be3
ja 0x471207
cmp dword [esi + 0x30], 0
jbe 0x471be3
mov eax, dword [esp + 0x54]
mov edx, dword [esi + 0x40]
mov ebx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x24], eax
mov eax, ecx
add eax, eax
cmp dword [edx + eax*8 + 8], 0
jne 0x471241
cmp byte [edx + eax*8 + 0xc], 0
jne 0x471241
mov edi, dword [edx + eax*8 + 4]
test edi, edi
je 0x471294
cmp dword [edi], 0
je 0x471294
cmp byte [edx + eax*8 + 0xc], 0
mov edi, 1
mov dword [esp + 0x18], edi
je 0x471298
mov eax, dword [esp + 0x24]
add ecx, 1
adc ebx, 0
cmp ebx, dword [esi + 0x34]
jb 0x471222
ja 0x471267
cmp ecx, dword [esi + 0x30]
jb 0x471222
mov ecx, dword [esp + 0x3c]
or eax, ecx
je 0x471be3
test edi, edi
je 0x471c8e
cmp ecx, dword [esi + 0x34]
jb 0x4712aa
ja 0x471408
mov edi, dword [esp + 0x24]
cmp edi, dword [esi + 0x30]
jbe 0x4712ae
jmp 0x471408
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
add eax, 1
mov dword [esp + 0x24], eax
adc dword [esp + 0x3c], 0
jmp 0x471255
mov edi, dword [esp + 0x24]
lea eax, [edi*8]
push eax
call fcn.004aaef4
mov ebx, eax
add esp, 4
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x47141a
mov ecx, dword [esi + 0x34]
or edx, 0xffffffff
mov eax, dword [esi + 0x30]
xorps xmm0, xmm0
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], 0xffffffff
movlpd qword [esp + 0x40], xmm0
movlpd qword [esp + 0x50], xmm0
mov dword [esp + 0x58], eax
mov dword [esp + 0x64], ecx
test ecx, ecx
jb 0x47142f
ja 0x47130a
test eax, eax
je 0x47142f
mov eax, dword [esp + 0x54]
mov edi, dword [esi + 0x40]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x1c]
mov eax, edx
add eax, eax
cmp dword [edi + eax*8], 0
je 0x471397
cmp dword [edi + eax*8 + 8], 0
jne 0x471354
cmp byte [edi + eax*8 + 0xc], 0
jne 0x471354
cmp dword [edi + eax*8 + 4], 0
je 0x47139e
mov edi, dword [edi + eax*8 + 4]
cmp dword [edi], 0
mov edi, dword [esi + 0x40]
je 0x47139e
mov ebx, dword [edi + eax*8]
mov esi, dword [ebx + 0x50]
mov ebx, dword [ebx + 0x54]
cmp dword [esp + 0x28], ebx
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x1c]
jb 0x471397
ja 0x471383
mov esi, dword [esp + 0x20]
cmp esi, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
jb 0x471397
mov esi, dword [esp + 0x30]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x2c]
cmp byte [edi + eax*8 + 0xc], 0
jne 0x4713c5
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x18], eax
ja 0x4713ff
jb 0x4713b0
cmp ecx, dword [esp + 0x24]
jae 0x4713ff
mov eax, dword [esp + 0x4c]
mov dword [ebx + ecx*8], edx
mov dword [ebx + ecx*8 + 4], eax
add ecx, 1
adc dword [esp + 0x18], 0
jmp 0x4713c9
mov eax, dword [esp + 0x4c]
add edx, 1
adc eax, 0
mov dword [esp + 0x4c], eax
cmp eax, dword [esi + 0x34]
ja 0x4713e7
jb 0x471325
cmp edx, dword [esi + 0x30]
jb 0x471325
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x18], eax
ja 0x47143d
jb 0x4713ff
cmp ecx, edi
jae 0x47143d
push ebx
call fcn.004aa8f0
add esp, 4
add esi, 8
je 0x47141a
mov dword [esi], 0x14
mov dword [esi + 4], 0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.004a4a5b
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x40]
jmp 0x4713ef
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
and eax, 0x20000
or eax, 0
jne 0x471462
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x28], ecx
jmp 0x4715a0
mov eax, edx
mov edx, dword [esp + 0x28]
and eax, edx
cmp eax, 0xffffffff
jne 0x471545
or edi, eax
xorps xmm0, xmm0
cmp dword [esi + 0x34], 0
mov dword [esp + 0x18], edi
movlpd qword [esp + 0x30], xmm0
movlpd qword [esp + 0x50], xmm0
jb 0x471455
ja 0x471496
cmp dword [esi + 0x30], 0
jbe 0x471455
mov eax, dword [esi + 0x40]
or ebx, 0xffffffff
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x28], eax
mov edi, dword [esp + 0x40]
mov eax, ecx
add eax, eax
mov eax, dword [edi + eax*8]
mov edi, dword [esp + 0x18]
test eax, eax
je 0x4714ed
mov edi, dword [eax + 0x50]
mov eax, dword [eax + 0x54]
cmp eax, dword [esp + 0x28]
jb 0x4714e9
ja 0x4714d9
cmp edi, esi
jb 0x4714e9
mov esi, edi
mov dword [esp + 0x28], eax
mov edi, ecx
mov ebx, edx
mov dword [esp + 0x18], edi
jmp 0x4714ed
mov edi, dword [esp + 0x18]
add ecx, 1
adc edx, 0
cmp edx, dword [esp + 0x64]
jb 0x4714b4
ja 0x471501
cmp ecx, dword [esp + 0x58]
jb 0x4714b4
mov eax, edi
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x2c]
and eax, ebx
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x1c]
cmp eax, 0xffffffff
je 0x471541
mov eax, dword [esp + 0x30]
lea edx, [esi + 8]
push eax
push edi
mov ecx, esi
call fcn.0047e170
mov ecx, eax
mov dword [esp + 0x28], eax
add esp, 8
mov dword [esp + 0x28], edx
or ecx, edx
je 0x4715d6
jmp 0x471549
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
test edx, edx
jne 0x471551
test eax, eax
je 0x4715a8
mov edi, dword [esi]
cmp dword [edi + 0x24], 1
jne 0x47156d
add edi, 0xc
je 0x47158f
mov dword [edi], 0x12
mov dword [edi + 4], 0
jmp 0x47158f
push 0x11
push edx
push eax
xor edx, edx
mov ecx, edi
call fcn.004780a0
add esp, 0xc
test edx, edx
jl 0x47158f
jg 0x471610
test eax, eax
jae 0x471610
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov eax, dword [esp + 0x34]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], eax
mov edi, dword [esi]
cmp dword [edi + 0x24], 1
jne 0x4715f4
add edi, 0xc
je 0x4715c2
mov dword [edi], 0x12
mov dword [edi + 4], 0
mov ecx, dword [esi]
lea edx, [esi + 8]
test edx, edx
je 0x4715d6
mov eax, dword [ecx + 0xc]
mov dword [edx], eax
mov eax, dword [ecx + 0x10]
mov dword [edx + 4], eax
push ebx
call fcn.004aa8f0
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.004a4a5b
mov esp, ebp
pop ebp
ret
push 8
push 0
push 0
xor edx, edx
mov ecx, edi
call fcn.004780a0
add esp, 0xc
test edx, edx
jl 0x4715c2
jg 0x471610
test eax, eax
jb 0x4715c2
mov dword [edi + 0x24], 1
mov eax, dword [esi + 0x54]
test eax, eax
je 0x47163b
push dword [eax + 0xc]
xorps xmm0, xmm0
sub esp, 8
movsd qword [eax + 0x18], xmm0
movsd qword [esp], xmm0
push dword [eax]
mov eax, dword [eax + 4]
call eax
add esp, 0x10
mov edx, dword [esp + 0x3c]
xor eax, eax
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
test edx, edx
jb 0x4719d3
mov ecx, dword [esp + 0x24]
ja 0x471660
test ecx, ecx
je 0x4719d3
mov eax, dword [esp + 0x44]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], eax
mov edi, dword [esi + 0x54]
test edi, edi
je 0x471712
call fcn.004a58b0
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
movsd qword [esp + 0x50], xmm0
call fcn.004a58b0
divsd xmm0, qword [esp + 0x50]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
add ecx, 1
adc edx, 0
movsd qword [esp + 0x58], xmm0
movsd qword [edi + 0x20], xmm0
call fcn.004a58b0
movaps xmm1, xmm0
divsd xmm1, qword [esp + 0x50]
movsd qword [edi + 0x28], xmm1
subsd xmm1, qword [esp + 0x58]
mulsd xmm1, qword [0x5071c8]
addsd xmm1, qword [esp + 0x58]
movaps xmm0, xmm1
movsd qword [esp + 0x50], xmm1
subsd xmm0, qword [edi + 0x18]
comisd xmm0, xmmword [edi + 0x10]
jbe 0x47170e
push dword [edi + 0xc]
mov eax, dword [edi + 4]
sub esp, 8
movsd qword [esp], xmm1
push dword [edi]
call eax
movsd xmm0, qword [esp + 0x60]
add esp, 0x10
movsd qword [edi + 0x18], xmm0
mov eax, dword [esp + 0x18]
mov ecx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
mov ebx, ecx
shl ebx, 4
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x40]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x64], eax
mov ecx, dword [ebx + eax]
test ecx, ecx
je 0x471754
mov edx, dword [esp + 0x28]
cmp dword [ecx + 0x54], edx
jb 0x4718ec
ja 0x471754
mov edx, dword [esp + 0x20]
cmp dword [ecx + 0x50], edx
jb 0x4718ec
cmp dword [ebx + eax + 8], 0
jne 0x471772
mov edi, dword [ebx + eax + 4]
test edi, edi
je 0x471768
test byte [edi], 0x41
jne 0x471772
mov dword [esp + 0x30], 0
jmp 0x47177e
mov edi, dword [ebx + eax + 4]
mov dword [esp + 0x30], 1
test edi, edi
jne 0x471799
call fcn.00479430
mov edi, eax
mov eax, dword [esp + 0x64]
mov dword [ebx + eax + 4], edi
test edi, edi
je 0x471925
push dword [esp + 0x4c]
mov ebx, dword [esp + 0x44]
mov ecx, esi
push ebx
call fcn.0047db50
add esp, 8
test eax, eax
js 0x471939
mov eax, dword [esi]
cmp dword [eax + 0x24], 1
jne 0x4719ad
push 0xd
push 0
push 0
xor edx, edx
mov ecx, eax
call fcn.004780a0
add esp, 0xc
test edx, edx
jl 0x4719bf
jg 0x4717e4
test eax, eax
jb 0x4719bf
cmp dword [esp + 0x30], 0
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], edx
je 0x471850
mov eax, dword [esp + 0x58]
xor ebx, ebx
mov ecx, dword [esp + 0x64]
mov edx, dword [eax + ecx + 8]
test edx, edx
jne 0x471829
push edx
sub esp, 0x10
mov edx, esi
mov ecx, esi
push 8
push dword [esp + 0x64]
push dword [esp + 0x5c]
call fcn.00478750
mov ebx, eax
add esp, 0x20
test ebx, ebx
je 0x471939
mov edx, ebx
push edi
mov ecx, esi
call fcn.00471ce0
add esp, 4
test eax, eax
js 0x47194c
test ebx, ebx
je 0x4718ec
mov ecx, ebx
call fcn.00470e90
jmp 0x4718ec
mov eax, 0xfff7
mov edx, edi
and word [edi + 0xc], ax
mov ecx, esi
push 0x100
call fcn.0047af80
add esp, 4
test eax, eax
js 0x471939
push dword [esp + 0x4c]
lea edx, [esi + 8]
mov ecx, esi
push ebx
call fcn.0047e060
mov ecx, eax
add esp, 8
or ecx, edx
je 0x471939
mov ecx, dword [esi]
cmp byte [ecx + 0x28], 0
jne 0x471989
cmp dword [ecx + 0x20], 0
jbe 0x471977
push 6
mov dword [esp + 0x70], edx
lea edx, [esp + 0x6c]
push 0
push 0x10
mov dword [esp + 0x74], eax
mov dword [esp + 0x7c], 0
call fcn.004780a0
add esp, 0xc
test edx, edx
jl 0x471989
jg 0x4718d8
test eax, eax
jb 0x471989
push dword [edi + 0x2c]
mov ecx, esi
push dword [edi + 0x28]
call fcn.00472460
add esp, 8
test eax, eax
js 0x471939
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
add eax, 1
mov edx, dword [esp + 0x3c]
adc ecx, 0
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], ecx
cmp ecx, edx
ja 0x4719cf
mov ecx, dword [esp + 0x24]
jb 0x47191c
cmp eax, ecx
jae 0x4719cf
mov ebx, dword [esp + 0x1c]
jmp 0x471670
lea eax, [esi + 8]
test eax, eax
je 0x471939
mov dword [eax], 0xe
mov dword [eax + 4], 0
push dword [esp + 0x1c]
mov ebx, 1
call fcn.004aa8f0
jmp 0x4719fe
mov dword [esp + 0x58], 1
test ebx, ebx
je 0x471971
mov ecx, ebx
call fcn.00470e90
push dword [esp + 0x1c]
call fcn.004aa8f0
mov ebx, dword [esp + 0x5c]
jmp 0x4719fe
push dword [esp + 0x1c]
jmp 0x4719f4
add ecx, 0xc
je 0x471989
mov dword [ecx], 0x12
mov dword [ecx + 4], 0
mov ecx, dword [esi]
lea edx, [esi + 8]
test edx, edx
je 0x47199d
mov eax, dword [ecx + 0xc]
mov dword [edx], eax
mov eax, dword [ecx + 0x10]
mov dword [edx + 4], eax
push dword [esp + 0x1c]
mov ebx, 1
call fcn.004aa8f0
jmp 0x4719fe
add eax, 0xc
je 0x4719bf
mov dword [eax], 0x12
mov dword [eax + 4], 0
push dword [esp + 0x1c]
mov ebx, 1
call fcn.004aa8f0
jmp 0x4719fe
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esi]
cmp dword [ecx + 0x24], 1
je 0x471a95
lea eax, [ecx + 0xc]
test eax, eax
je 0x4719f3
mov dword [eax], 0x12
mov dword [eax + 4], 0
push ebx
call fcn.004aa8f0
mov ebx, 1
add esp, 4
mov edi, dword [esi + 0x54]
test edi, edi
je 0x471a4c
movsd xmm1, qword [edi + 0x28]
subsd xmm1, qword [edi + 0x20]
addsd xmm1, qword [edi + 0x20]
movaps xmm0, xmm1
movsd qword [esp + 0x50], xmm1
subsd xmm0, qword [edi + 0x18]
comisd xmm0, xmmword [edi + 0x10]
jbe 0x471a4c
push dword [edi + 0xc]
mov eax, dword [edi + 4]
sub esp, 8
movsd qword [esp], xmm1
push dword [edi]
call eax
movsd xmm0, qword [esp + 0x60]
add esp, 0x10
movsd qword [edi + 0x18], xmm0
test ebx, ebx
je 0x471c8e
mov esi, dword [esi]
mov eax, dword [esi + 0x24]
cmp eax, 1
je 0x471a67
cmp eax, 2
jne 0x47141a
push 0xa
push 0
push 0
xor edx, edx
mov ecx, esi
call fcn.004780a0
add esp, 0xc
mov dword [esi + 0x24], 0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.004a4a5b
mov esp, ebp
pop ebp
ret
push 0xd
push 0
push 0
xor edx, edx
call fcn.004780a0
add esp, 0xc
test edx, edx
jl 0x4719f3
jg 0x471ab7
test eax, eax
jb 0x4719f3
push dword [esp + 0x3c]
mov edx, ebx
mov ecx, esi
push dword [esp + 0x28]
call fcn.00478cb0
add esp, 8
test edx, edx
jl 0x4719f3
jg 0x471add
test eax, eax
jb 0x4719f3
mov ecx, dword [esi]
cmp dword [ecx + 0x24], 1
jne 0x4719df
push 0xd
push 0
push 0
xor edx, edx
call fcn.004780a0
add esp, 0xc
test edx, edx
jl 0x4719f3
jg 0x471b0b
test eax, eax
jb 0x4719f3
push ebx
call fcn.004aa8f0
mov edi, dword [esi]
add esp, 4
cmp dword [edi + 0x24], 1
je 0x471b37
add edi, 0xc
je 0x471bb7
mov dword [edi], 0x12
mov dword [edi + 4], 0
jmp 0x471bb7
mov eax, dword [edi + 0x20]
cmp eax, 1
jbe 0x471b53
add edi, 0xc
je 0x471bb7
mov dword [edi], 0x1d
mov dword [edi + 4], 0
jmp 0x471bb7
test eax, eax
je 0x471b94
add eax, 0xffffffff
mov dword [edi + 0x20], eax
jne 0x471b94
push 2
push 0
push 0
xor edx, edx
mov ecx, edi
call fcn.004780a0
mov ecx, dword [edi]
add esp, 0xc
test ecx, ecx
je 0x471b94
call fcn.00477a50
test eax, eax
jns 0x471b94
lea eax, [edi + 0xc]
test eax, eax
je 0x471b94
mov dword [eax], 0x14
mov dword [eax + 4], 0
push 9
push 0
push 0
xor edx, edx
mov ecx, edi
call fcn.004780a0
add esp, 0xc
test edx, edx
jg 0x471bd5
jl 0x471bb0
test eax, eax
jae 0x471bd5
mov dword [edi + 0x24], 2
mov ecx, dword [esi]
lea edx, [esi + 8]
test edx, edx
je 0x471bcb
mov eax, dword [ecx + 0xc]
mov dword [edx], eax
mov eax, dword [ecx + 0x10]
mov dword [edx + 4], eax
mov ebx, 1
jmp 0x471a01
mov dword [edi + 0x24], 0
xor ebx, ebx
jmp 0x471a01
test byte [esi + 4], 8
jne 0x471bf1
test edi, edi
je 0x471c8e
mov edi, dword [esi]
cmp dword [edi + 0x24], 3
je 0x471c8e
mov eax, dword [edi + 0x20]
test eax, eax
je 0x471c41
add eax, 0xffffffff
mov dword [edi + 0x20], eax
jne 0x471c41
push 2
push 0
push 0
xor edx, edx
mov ecx, edi
call fcn.004780a0
mov ecx, dword [edi]
add esp, 0xc
test ecx, ecx
je 0x471c41
call fcn.00477a50
test eax, eax
jns 0x471c41
lea eax, [edi + 0xc]
test eax, eax
je 0x471c41
mov dword [eax], 0x14
mov dword [eax + 4], 0
mov eax, dword [edi + 0x24]
test eax, eax
je 0x471c6b
cmp eax, 1
je 0x471c52
cmp eax, 2
jne 0x471c6b
push 0xa
push 0
push 0
xor edx, edx
mov ecx, edi
call fcn.004780a0
add esp, 0xc
mov dword [edi + 0x24], 0
push 0xf
push 0
push 0
xor edx, edx
mov ecx, edi
call fcn.004780a0
add esp, 0xc
test edx, edx
jl 0x471ca9
jg 0x471c87
test eax, eax
jb 0x471ca9
mov dword [edi + 0x24], 3
mov ecx, esi
call fcn.004760d0
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.004a4a5b
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi]
lea edx, [esi + 8]
test edx, edx
je 0x47141a
mov eax, dword [ecx + 0xc]
pop edi
mov dword [edx], eax
mov eax, dword [ecx + 0x10]
mov ecx, dword [esp + 0x78]
pop esi
pop ebx
mov dword [edx + 4], eax
xor ecx, esp
or eax, 0xffffffff
call fcn.004a4a5b
mov esp, ebp
pop ebp
ret