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

Disassembly:
sub esp, 0x28
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
push ebx
push ebp
push esi
push edi
xor edi, edi
mov dword [esp + 0x18], ecx
xor esi, esi
cmp byte [edx + 0x50], 0
je 0x709ff4
cmp byte [edx + 0x70], 0
je 0x70a00f
test esi, esi
mov eax, edx
mov edi, edx
cmovne eax, esi
mov esi, eax
mov eax, dword [esp + 0x44]
jmp 0x70a003
test esi, esi
je 0x70a001
cmp byte [edx + 0xc0], 0
jne 0x70a01a
xor edi, edi
cmp edx, eax
je 0x70a01e
mov edx, dword [edx + 0x80]
jmp 0x709fd7
test edi, edi
cmovne eax, edi
mov dword [esp + 0x44], eax
jmp 0x70a01e
mov dword [esp + 0x44], edi
mov ebx, esi
test esi, esi
jne 0x70a030
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 0xc
movsd xmm4, qword [esi + 0xa8]
xorps xmm2, xmm2
mov eax, dword [esi + 0x78]
mov edx, dword [esi + 0x7c]
movsd xmm3, qword [esi + 0x48]
movsd qword [esp + 0x30], xmm4
movsd qword [esp + 0x20], xmm2
mov dword [esp + 0x1c], edx
test eax, eax
je 0x70a08b
nop word [eax + eax]
mov ebp, dword [eax]
movsd xmm1, qword [ebp + 0xb0]
movsd xmm0, qword [ebp + 0xa8]
subsd xmm1, xmm3
subsd xmm0, xmm3
mulsd xmm1, xmm0
comisd xmm2, xmm1
jae 0x70a08d
mov eax, dword [eax + 4]
test eax, eax
jne 0x70a060
xor ebp, ebp
movsd xmm0, qword [esi + 0x68]
mov edi, dword [esp + 0x3c]
comisd xmm0, xmm3
seta al
mov byte [esp + 0x40], al
test edx, edx
je 0x70a2b3
movsd xmm0, qword [edx + 0xb0]
ucomisd xmm0, xmm4
lahf
test ah, 0x44
jp 0x70a2b3
movsd xmm0, qword [edx + 0xa8]
lea eax, [esp + 0x20]
sub esp, 0x10
subsd xmm0, xmm4
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm4
push eax
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.007121a0
test al, al
je 0x70a2b0
mov eax, dword [esp + 0x1c]
movsd xmm1, qword [esp + 0x28]
comisd xmm1, xmmword [eax + 0xa8]
jbe 0x70a2b0
movsd xmm0, qword [esp + 0x30]
xorps xmm2, xmm2
comisd xmm0, xmm1
jbe 0x70a2b3
mov eax, dword [eax + 0x78]
test eax, eax
je 0x70a2b3
movsd xmm3, qword [esp + 0x20]
nop dword [eax]
mov esi, dword [eax]
movsd xmm1, qword [esi + 0xb0]
movsd xmm0, qword [esi + 0xa8]
subsd xmm1, xmm3
subsd xmm0, xmm3
mulsd xmm1, xmm0
comisd xmm2, xmm1
jae 0x70a160
mov eax, dword [eax + 4]
test eax, eax
jne 0x70a130
jmp 0x70a2b3
mov ecx, dword [esp + 0x18]
mov ebp, esi
call fcn.007020f0
mov ecx, dword [esp + 0x18]
mov ebx, eax
movsd xmm2, qword [esp + 0x28]
add ecx, 4
push ecx
push dword [esp + 0x20]
mov ecx, ebx
call fcn.00703500
mov eax, dword [esp + 0x18]
mov ecx, ebx
push dword [eax]
call fcn.00709c60
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push dword [eax]
call fcn.00709c60
cmp byte [ebx + 0x50], 0
movsd xmm0, qword [0x7f1b10]
jne 0x70a1b5
movsd qword [ebx + 0x48], xmm0
mov byte [ebx + 0x50], 1
cmp byte [ebx + 0x70], 0
jne 0x70a1c4
movsd qword [ebx + 0x68], xmm0
mov eax, dword [esp + 0x1c]
mov byte [ebx + 0x70], 1
cmp byte [eax + 0x70], 0
jne 0x70a1d7
movsd qword [eax + 0x68], xmm0
movsd xmm1, qword [esp + 0x20]
mov byte [eax + 0x70], 1
comisd xmm1, xmmword [esi + 0xa8]
jbe 0x70a2b0
movsd xmm0, qword [esi + 0xb0]
comisd xmm0, xmm1
jbe 0x70a2b0
mov ecx, edi
call fcn.007020f0
mov ecx, dword [esp + 0x3c]
mov edi, eax
movsd xmm2, qword [esp + 0x20]
add ecx, 4
push ecx
push esi
mov ecx, edi
call fcn.00703500
mov eax, dword [esp + 0x3c]
mov ecx, edi
push dword [eax]
call fcn.00709c60
mov eax, dword [esp + 0x3c]
mov ecx, esi
push dword [eax]
call fcn.00709c60
mov dl, byte [esp + 0x40]
movsd xmm0, qword [0x7f1b10]
test dl, dl
je 0x70a27e
cmp byte [esi + 0x70], 0
jne 0x70a255
movsd qword [esi + 0x68], xmm0
mov byte [esi + 0x70], 1
cmp byte [edi + 0x50], 0
jne 0x70a264
movsd qword [edi + 0x48], xmm0
mov byte [edi + 0x50], 1
cmp byte [edi + 0x70], 0
jne 0x70a273
movsd qword [edi + 0x68], xmm0
mov byte [edi + 0x70], 1
mov ebp, edi
xorps xmm2, xmm2
jmp 0x70a2b7
cmp byte [esi + 0x50], 0
jne 0x70a289
movsd qword [esi + 0x48], xmm0
mov byte [esi + 0x50], 1
cmp byte [esi + 0x70], 0
jne 0x70a298
movsd qword [esi + 0x68], xmm0
mov byte [esi + 0x70], 1
cmp byte [edi + 0x50], 0
jne 0x70a2a7
movsd qword [edi + 0x48], xmm0
mov byte [edi + 0x50], 1
xorps xmm2, xmm2
jmp 0x70a2b7
xorps xmm2, xmm2
mov dl, byte [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 0x78]
movsd xmm3, qword [ecx + 0x68]
test eax, eax
je 0x70a2fb
nop word [eax + eax]
mov edi, dword [eax]
movsd xmm1, qword [edi + 0xb0]
movsd xmm0, qword [edi + 0xa8]
subsd xmm1, xmm3
subsd xmm0, xmm3
mulsd xmm1, xmm0
comisd xmm2, xmm1
jae 0x70a2fd
mov eax, dword [eax + 4]
test eax, eax
jne 0x70a2d0
xor edi, edi
test dl, dl
mov esi, ebp
cmovne esi, edi
cmovne edi, ebp
push edi
push ecx
mov ecx, dword [esp + 0x20]
push ebx
call fcn.007124f0
mov ecx, dword [esp + 0x3c]
push ebx
push esi
push edi
mov byte [esp + 0x23], al
call fcn.007124f0
mov ebp, dword [esp + 0x44]
mov ecx, dword [esp + 0x18]
or byte [esp + 0x17], al
push ebp
push ebx
call fcn.00712490
mov ecx, dword [esp + 0x3c]
push esi
push edi
call fcn.00712490
movsd xmm0, qword [ebp + 0xb0]
mov ecx, ebx
mov esi, dword [esp + 0x18]
movsd qword [ebx + 0xb0], xmm0
mov eax, dword [esi]
push eax
mov word [ebx + 0xc2], 0
call fcn.00709c60
mov ebp, dword [esp + 0x3c]
lea ecx, [ebx + 0x38]
movsd xmm0, qword [ebx + 0xa8]
sub esp, 8
movsd qword [esp], xmm0
push dword [ebp]
push ebx
push dword [esi]
call fcn.00706170
movsd xmm0, qword [ebx + 0xb0]
lea eax, [ebx + 0x20]
sub esp, 8
lea ecx, [ebx + 0x58]
movsd qword [esp], xmm0
push dword [ebp]
push eax
push dword [esi]
call fcn.00706170
movsd xmm6, qword [ebx + 0x48]
xorps xmm1, xmm1
movsd xmm4, qword [0x7f1790]
subsd xmm1, xmm6
movsd xmm3, qword [ebx + 0x68]
movaps xmm0, xmm4
subsd xmm0, xmm6
xorps xmm2, xmm2
movaps xmm5, xmm6
mulsd xmm1, xmm0
comisd xmm2, xmm1
jb 0x70a42f
xorps xmm1, xmm1
movaps xmm0, xmm4
subsd xmm1, xmm3
subsd xmm0, xmm3
mulsd xmm1, xmm0
comisd xmm2, xmm1
jb 0x70a42f
cmp byte [esp + 0x40], 0
jne 0x70a400
movaps xmm5, xmm3
movaps xmm3, xmm6
movsd qword [edi + 0xa8], xmm5
mov ecx, edi
movsd qword [edi + 0xb0], xmm3
mov eax, dword [ebp]
push eax
mov word [edi + 0xc2], 0
call fcn.00709c60
movsd xmm4, qword [0x7f1790]
xorps xmm2, xmm2
mov eax, dword [ebx + 0x7c]
mov esi, dword [ebx + 0x80]
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x70a44f
mov dword [eax + 0x80], esi
test esi, esi
je 0x70a45d
mov dword [esi + 0x7c], eax
jmp 0x70a45d
mov dword [ecx + 0x18], esi
test esi, esi
je 0x70a45d
mov dword [esi + 0x7c], 0
subsd xmm4, qword [ebx + 0x48]
xorps xmm1, xmm1
subsd xmm1, qword [ebx + 0x48]
mulsd xmm1, xmm4
comisd xmm2, xmm1
setae al
dec dword [ecx + 0x24]
test al, al
jne 0x70a491
mov eax, dword [ecx + 0x20]
mov dword [ebx + 0x80], eax
mov dword [ecx + 0x20], ebx
mov byte [ebx + 0xc4], 1
jmp 0x70a49d
mov eax, dword [ecx + 0x1c]
mov dword [ebx + 0x80], eax
mov dword [ecx + 0x1c], ebx
mov edx, dword [edi + 0x7c]
mov eax, dword [edi + 0x80]
test edx, edx
je 0x70a4b9
mov dword [edx + 0x80], eax
test eax, eax
je 0x70a4c7
mov dword [eax + 0x7c], edx
jmp 0x70a4c7
mov dword [ebp + 0x18], eax
test eax, eax
je 0x70a4c7
mov dword [eax + 0x7c], 0
dec dword [ebp + 0x24]
cmp byte [esp + 0x17], 0
mov eax, dword [ebp + 0x1c]
mov dword [edi + 0x80], eax
mov dword [ebp + 0x1c], edi
je 0x70a4e9
call fcn.00712430
mov ecx, ebp
call fcn.00712430
test esi, esi
je 0x70a4f6
cmp byte [esi + 0xc4], 0
je 0x70a4f8
xor esi, esi
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 0xc