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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push edi
push esi
push ebx
sub esp, 0xf4
mov edx, dword [0x10219178]
mov eax, dword [0x10219180]
inc dword [0x10219c80]
cmp edx, dword [0x1020cacc]
jg 0x10177830
cmp eax, dword [0x1020cad0]
je 0x1017783b
mov dword [0x1020cad0], eax
mov dword [0x1020cacc], edx
mov ebx, dword [ebp + 0xc]
test ebx, ebx
jle 0x10177875
push 4
call fcn.101bcde0
mov edi, eax
push 0x28
call fcn.101bcde0
add esp, 8
mov dword [edi], eax
mov dword [eax], ebx
mov esi, 1
pxor xmm0, xmm0
movsd qword [eax + 0x10], xmm0
pxor xmm1, xmm1
movsd qword [eax + 8], xmm1
jmp 0x101779e3
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x68]
shl edx, 2
push edx
call fcn.101bcde0
pop ecx
mov edi, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x68]
xor esi, esi
test eax, eax
jle 0x10178345
mov dword [esp + 0xb8], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0xb4], edi
mov ebx, 1
mov edx, dword [esi + 0x10]
cmp dword [edx + ebx*4], 0
je 0x101779af
mov edx, dword [0x10219ce4]
cmp dword [edx + ebx*4], 0
jne 0x101779af
mov eax, dword [esi]
mov edx, dword [eax + ebx*4]
mov dword [esp + 0x80], edx
push 0x28
call fcn.101bcde0
pop ecx
mov ecx, dword [esp + 0xb4]
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x84], ebx
mov dword [ecx + edi*4], eax
mov dword [eax], ebx
mov ecx, dword [esi + 0x44]
mov dword [esp + 0x10], 1
shl ebx, 4
movsd xmm0, qword [ecx + ebx]
mov ecx, dword [0x10219190]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x80]
imul edx, eax, 0xa10
subsd xmm0, qword [ecx + edx + 0x78]
movsd qword [esp + 0x70], xmm0
mov edi, dword [esi + 0x44]
movsd xmm1, qword [ebx + edi + 8]
subsd xmm1, qword [ecx + edx + 0x80]
mov ebx, dword [esp + 0x84]
movsd qword [esp + 0x78], xmm1
mov dword [esp], eax
mov eax, dword [esi + 0x4c]
mov edx, dword [eax + ebx*4]
mov eax, dword [esi + 0x48]
movsd xmm2, qword [eax + ebx*8]
mov eax, dword [esp + 0x88]
movsd qword [esp + 8], xmm2
mov dword [esp + 4], edx
lea ecx, [eax + 8]
lea edx, [esp + 0x70]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
lea edi, [eax + 0x18]
mov dword [esp + 0x1c], edi
lea ecx, [eax + 0x10]
mov dword [esp + 0x20], ecx
add eax, 0x20
mov dword [esp + 0x24], eax
xor edx, edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], edx
call fcn.100dfc50
mov eax, dword [esi + 0x68]
inc dword [esp + 0xb8]
inc ebx
cmp ebx, eax
jle 0x101778ad
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0xb4]
cmp esi, 1
jg 0x101779d2
jge 0x101779e3
jmp 0x10178345
push 0x1013a500
push 4
push esi
push edi
call fcn.101bec80
add esp, 0x10
xor eax, eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xb8], esi
mov dword [esp + 0xb4], edi
mov edi, dword [esp + 0xb4]
mov esi, dword [esp + 0xc4]
mov ecx, dword [ebp + 8]
mov eax, dword [0x10219190]
mov ebx, dword [edi + esi*4]
mov edx, dword [ebx]
mov edi, dword [ecx]
imul ebx, dword [edi + edx*4], 0xa10
mov esi, dword [eax + ebx + 0xd0]
mov edi, dword [esi]
mov esi, dword [eax + ebx + 0x114]
mov dword [esp + 0xc8], edx
mov dword [esp + 0xf0], ebx
mov ebx, dword [eax + ebx + 0x474]
mov dword [esp + 0xcc], esi
mov esi, dword [ecx + 0x44]
mov eax, edx
shl eax, 4
movsd xmm0, qword [eax + esi]
movsd qword [esp + 0xa0], xmm0
movsd xmm1, qword [eax + esi + 8]
movsd qword [esp + 0xa8], xmm1
mov eax, dword [ecx + 0x48]
movsd xmm2, qword [eax + edx*8]
mov ecx, dword [ecx + 0x4c]
mov edx, dword [ecx + edx*4]
mov eax, dword [edi + 0x10]
movsd qword [esp + 0xd0], xmm2
shl eax, 4
mov dword [esp + 0xe8], edx
push eax
call fcn.101bcde0
mov dword [esp + 0xc4], eax
mov eax, dword [edi + 0x10]
shl eax, 4
push eax
push dword [edi]
push dword [esp + 0xcc]
call fcn.101d7590
add esp, 0x10
mov ecx, dword [esp + 0xc0]
mov eax, dword [0x10219190]
mov esi, dword [edi + 0x10]
mov dword [esp], ecx
mov ecx, dword [esp + 0xf0]
mov dword [esp + 8], esi
xor edx, edx
lea esi, [esp + 0xc]
pxor xmm2, xmm2
mov dword [esp + 4], edx
movsd xmm0, qword [eax + ecx + 0x78]
movsd qword [esi], xmm0
movsd xmm1, qword [eax + ecx + 0x80]
movsd qword [esi + 8], xmm1
movsd qword [esp + 0x20], xmm2
lea eax, [esp + 0x28]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xa0]
mov dword [eax], edx
mov edx, dword [esp + 0xa4]
mov dword [eax + 4], edx
mov ecx, dword [esp + 0xa8]
mov dword [eax + 8], ecx
mov esi, dword [esp + 0xac]
mov dword [eax + 0xc], esi
mov eax, dword [esp + 0xe8]
movsd xmm3, qword [esp + 0xd0]
movsd qword [esp + 0x3c], xmm3
mov dword [esp + 0x38], eax
call fcn.100ae6e0
movsd xmm0, qword [0x101f4aa0]
movsd xmm1, qword [edi + 0x48]
comisd xmm0, xmm1
jbe 0x10177c16
mov ecx, dword [0x10219190]
mov esi, dword [esp + 0xf0]
movsd qword [esp + 0x80], xmm1
movsd xmm0, qword [edi + 0x50]
movsd qword [esp + 0x88], xmm0
mov dword [esp + 8], 1
lea edx, [esp + 0x80]
mov dword [esp], edx
xor edx, edx
lea eax, [esp + 0xc]
pxor xmm3, xmm3
mov dword [esp + 4], edx
movsd xmm1, qword [ecx + esi + 0x78]
movsd qword [eax], xmm1
movsd xmm2, qword [ecx + esi + 0x80]
movsd qword [eax + 8], xmm2
movsd qword [esp + 0x20], xmm3
lea eax, [esp + 0x28]
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0xa0]
mov dword [eax], ecx
mov esi, dword [esp + 0xa4]
mov dword [eax + 4], esi
mov edx, dword [esp + 0xa8]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0xac]
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0xe8]
movsd xmm4, qword [esp + 0xd0]
movsd qword [esp + 0x3c], xmm4
mov dword [esp + 0x38], eax
call fcn.100ae6e0
test ebx, ebx
jle 0x10177e69
lea eax, [ebx*4]
mov dword [esp + 0x98], eax
push eax
call fcn.101bcde0
mov esi, eax
mov eax, ebx
shl eax, 4
push eax
call fcn.101bcde0
mov dword [esp + 0xec], eax
lea eax, [ebx*8]
push eax
call fcn.101bcde0
mov dword [esp + 0xec], eax
push dword [esp + 0xa4]
call fcn.101bcde0
add esp, 0x10
mov dword [esp + 0xdc], eax
mov dword [esp + 0xd8], ebx
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0x9c], edi
xor eax, eax
mov edi, eax
mov edx, dword [ebx + edi*4]
mov ecx, dword [edx + 0x10]
shl ecx, 4
push ecx
call fcn.101bcde0
mov dword [esi + edi*4], eax
mov ecx, dword [ebx + edi*4]
mov edx, dword [ecx + 0x10]
shl edx, 4
push edx
push dword [ecx]
push eax
call fcn.101d7590
add esp, 0x10
mov ecx, dword [ebx + edi*4]
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0xec], esi
mov esi, dword [esi + edi*4]
mov dword [ecx + edi*4], edx
mov dword [esp], esi
mov esi, dword [esp + 0xf0]
mov dword [esp + 8], edx
mov edx, dword [0x10219190]
xor eax, eax
lea ecx, [esp + 0xc]
pxor xmm2, xmm2
mov dword [esp + 4], eax
movsd xmm0, qword [edx + esi + 0x78]
movsd qword [ecx], xmm0
movsd xmm1, qword [edx + esi + 0x80]
movsd qword [ecx + 8], xmm1
movsd qword [esp + 0x20], xmm2
lea esi, [esp + 0x28]
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0xa0]
mov dword [esi], edx
mov edx, dword [esp + 0xa4]
mov dword [esi + 4], edx
mov edx, dword [esp + 0xa8]
mov dword [esi + 8], edx
mov edx, dword [esp + 0xac]
mov dword [esi + 0xc], edx
mov edx, dword [esp + 0xe8]
movsd xmm3, qword [esp + 0xd0]
mov esi, dword [esp + 0xec]
movsd qword [esp + 0x3c], xmm3
mov dword [esp + 0x38], edx
call fcn.100ae6e0
mov ecx, dword [esp + 0xe0]
movsd xmm3, qword [0x101f4aa0]
mov edx, dword [ebx + edi*4]
movsd xmm0, qword [edx + 0x18]
movsd qword [ecx + edi*8], xmm0
mov edx, dword [ebx + edi*4]
mov ecx, edi
movsd xmm1, qword [edx + 0x48]
shl ecx, 4
add ecx, dword [esp + 0xe4]
movsd qword [ecx], xmm1
movsd xmm2, qword [edx + 0x50]
movsd qword [ecx + 8], xmm2
mov edx, dword [ebx + edi*4]
comisd xmm3, xmmword [edx + 0x48]
jbe 0x10177e4b
mov edx, dword [0x10219190]
mov dword [esp + 0xec], esi
mov dword [esp + 8], 1
mov dword [esp], ecx
mov ecx, dword [esp + 0xf0]
xor eax, eax
lea esi, [esp + 0xc]
pxor xmm2, xmm2
mov dword [esp + 4], eax
movsd xmm0, qword [edx + ecx + 0x78]
movsd qword [esi], xmm0
movsd xmm1, qword [edx + ecx + 0x80]
movsd qword [esi + 8], xmm1
movsd qword [esp + 0x20], xmm2
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0xa0]
lea eax, [esp + 0x28]
mov dword [eax], edx
mov ecx, dword [esp + 0xa4]
mov dword [eax + 4], ecx
mov esi, dword [esp + 0xa8]
mov dword [eax + 8], esi
mov edx, dword [esp + 0xac]
mov dword [eax + 0xc], edx
mov ecx, dword [esp + 0xe8]
movsd xmm3, qword [esp + 0xd0]
mov esi, dword [esp + 0xec]
movsd qword [esp + 0x3c], xmm3
mov dword [esp + 0x38], ecx
call fcn.100ae6e0
inc edi
cmp edi, dword [esp + 0xd8]
jl 0x10177c89
mov ebx, dword [esp + 0xd8]
mov edi, dword [esp + 0x9c]
jmp 0x10177e80
xor esi, esi
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe0], esi
mov dword [esp + 0xdc], esi
mov eax, dword [0x10219cc8]
mov edx, dword [0x10219ccc]
test eax, eax
jle 0x10177ed1
mov dword [esp + 0xec], esi
mov esi, edx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0x9c], edi
xor ecx, ecx
mov edi, eax
mov ebx, ecx
push dword [esi + ebx*4]
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, edi
jl 0x10177eac
mov ebx, dword [esp + 0xd8]
mov edi, dword [esp + 0x9c]
mov edx, esi
mov esi, dword [esp + 0xec]
push edx
call fcn.101bceaa
push dword [0x10219cdc]
mov dword [0x10219ccc], 0
call fcn.101bceaa
add esp, 8
cmp dword [0x1021f830], 0
mov dword [0x10219cdc], 0
je 0x10177f0c
mov eax, 2
call fcn.10178364
mov edx, dword [esp + 0xc0]
movsd xmm1, qword [0x1021f9c0]
movsd xmm2, qword [0x1021f8d8]
movsd xmm4, qword [0x101f4aa8]
movsd xmm0, qword [edi + 0x48]
cmpltsd xmm0, qword [0x101f4aa0]
movsd xmm3, qword [0x101f4ab0]
movsd xmm5, qword [edi + 0x18]
movsd qword [esp + 4], xmm5
movsd qword [esp + 0x38], xmm1
mulsd xmm2, xmm4
movsd qword [esp + 0x40], xmm2
mulsd xmm3, xmm5
movsd qword [esp + 0x4c], xmm3
mulsd xmm5, xmm4
movsd qword [esp + 0x54], xmm5
movd ecx, xmm0
mov dword [esp + 0x28], 0x10219cd4
lea eax, [esp + 0x80]
and ecx, eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x2c], 0x10219cd0
mov dword [esp], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], 0x10219cd8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x34], 0x10219cc8
mov dword [esp + 0x20], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x24], ebx
mov eax, 1
mov dword [esp + 0x60], 0x1f4
mov dword [esp + 0x48], eax
mov dword [esp + 0x64], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x6c], eax
call fcn.1013a550
test eax, eax
jne 0x101780b7
mov eax, dword [0x1020cae4]
mov edx, dword [esp + 0xc8]
movsd xmm0, qword [esp + 0xd0]
movsd qword [esp + 0xc], xmm0
mov dword [esp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], edx
xor edx, edx
lea ecx, [esp + 0xa0]
mov dword [esp + 8], ecx
mov dword [esp + 0x14], eax
mov eax, dword [0x10219cd4]
mov dword [esp + 0x18], eax
mov eax, dword [0x10219cd0]
mov dword [esp + 0x1c], eax
mov eax, dword [0x10219cd8]
mov dword [esp + 0x20], eax
mov eax, dword [0x10219cc8]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
call fcn.1018c0d0
movsd xmm0, qword [0x10219ca0]
addsd xmm0, qword [esp + 0x90]
mov eax, dword [0x10219ce4]
mov edx, dword [esp + 0xc8]
movsd qword [0x10219ca0], xmm0
mov dword [eax + edx*4], 1
mov edi, dword [0x10219cc8]
lea edx, [edi*4]
push edx
call fcn.101bcde0
pop ecx
mov dword [0x10219ccc], eax
test edi, edi
jle 0x1017810d
xor edi, edi
push 0x10
call fcn.101bcde0
mov edx, dword [0x10219ccc]
mov ecx, dword [0x10219cd0]
mov dword [edx + edi*4], eax
mov edx, dword [0x10219cd4]
push eax
push dword [ecx + edi*4]
push dword [edx + edi*4]
call fcn.100ae040
add esp, 0x10
mov eax, dword [0x10219cc8]
inc edi
cmp edi, eax
jl 0x101780d6
mov edi, eax
lea edx, [edi*8]
push edx
call fcn.101bcde0
pop ecx
mov dword [0x10219cdc], eax
test edi, edi
jle 0x10178157
xor edi, edi
mov eax, dword [0x10219cd4]
mov edx, dword [0x10219cd0]
mov ecx, dword [0x10219cdc]
lea ecx, [ecx + edi*8]
push ecx
push 0
push dword [edx + edi*4]
push dword [eax + edi*4]
call fcn.100ae170
add esp, 0x10
mov eax, dword [0x10219cc8]
inc edi
cmp edi, eax
jl 0x10178126
mov edi, eax
cmp dword [0x1021f830], 0
je 0x10178209
push 4
push edi
call fcn.101beb7a
mov dword [0x10219ce8], eax
push 4
push dword [0x10219cc8]
call fcn.101beb7a
mov dword [0x10219cec], eax
push 4
push dword [0x10219cc8]
call fcn.101beb7a
mov dword [0x10219cf0], eax
push 4
push dword [0x10219cc8]
call fcn.101beb7a
mov dword [0x10219cf4], eax
push 4
push dword [0x10219cc8]
call fcn.101beb7a
mov dword [0x10219cf8], eax
push 0x18
push dword [0x10219cc8]
call fcn.101beb7a
add esp, 0x30
mov edi, dword [0x10219cc8]
mov dword [0x10219cfc], eax
test edi, edi
jle 0x10178209
mov dword [esp + 0xd8], ebx
xor edx, edx
xor ebx, ebx
lea ecx, [edx + edx*2]
mov dword [eax + ecx*8], ebx
mov dword [eax + ecx*8 + 4], ebx
inc edx
mov dword [eax + ecx*8 + 8], ebx
mov dword [eax + ecx*8 + 0xc], ebx
cmp edx, edi
mov dword [eax + ecx*8 + 0x10], ebx
mov dword [eax + ecx*8 + 0x14], ebx
jb 0x101781e3
mov ebx, dword [esp + 0xd8]
push dword [esp + 0xc0]
call fcn.101bceaa
pop ecx
test ebx, ebx
jle 0x1017823c
mov dword [esp + 0xb0], edi
xor eax, eax
mov edi, ebx
mov ebx, eax
push dword [esi + ebx*4]
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, edi
jl 0x10178227
mov edi, dword [esp + 0xb0]
push esi
call fcn.101bceaa
push dword [esp + 0xe4]
call fcn.101bceaa
push dword [esp + 0xec]
call fcn.101bceaa
push dword [esp + 0xe8]
call fcn.101bceaa
add esp, 0x10
mov edx, dword [esp + 0xc4]
inc edx
cmp edx, dword [esp + 0xb8]
mov dword [esp + 0xc4], edx
jl 0x101779fa
mov esi, dword [esp + 0xb8]
mov dword [esp + 0xb0], edi
mov edi, dword [esp + 0xb4]
push dword [0x10219ce0]
call fcn.101bceaa
mov eax, dword [esp + 0xb4]
shl eax, 4
push eax
call fcn.101bcde0
add esp, 8
cmp dword [esp + 0xb0], 0
mov dword [0x10219ce0], eax
jle 0x1017831b
mov ecx, dword [0x10219cd8]
mov dword [esp + 0xb4], edi
mov edi, dword [esp + 0xb0]
xor ebx, ebx
mov edx, eax
mov dword [edx + 8], ebx
movsd xmm0, qword [ecx + ebx*8]
movsd qword [edx], xmm0
inc ebx
add edx, 0x10
cmp ebx, edi
jl 0x101782df
cmp dword [esp + 0xb0], 1
mov edi, dword [esp + 0xb4]
jle 0x1017831b
push 0x100adf10
push 0x10
push dword [esp + 0xb8]
push eax
call fcn.101bec80
add esp, 0x10
test esi, esi
jle 0x1017832f
xor ebx, ebx
push dword [edi + ebx*4]
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, esi
jl 0x10178321
push edi
call fcn.101bceaa
pop ecx
xor eax, eax
add esp, 0xf4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x10219cc8]
mov dword [esp + 0xb0], eax
jmp 0x1017829a