Function at 0x708220
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
mov ebx, ecx
xor esi, esi
push edi
mov dword [esp + 0x1c], ebx
xor ecx, ecx
nop dword [eax]
cmp byte [edx + 0x50], 0
je 0x70825d
cmp byte [edx + 0x70], 0
je 0x708278
test ecx, ecx
mov eax, edx
mov esi, edx
cmovne eax, ecx
mov ecx, eax
mov eax, dword [esp + 0x44]
jmp 0x70826c
test ecx, ecx
je 0x70826a
cmp byte [edx + 0xc0], 0
jne 0x708289
xor esi, esi
cmp edx, eax
je 0x708295
mov edx, dword [edx + 0x80]
jmp 0x708240
test esi, esi
mov ebp, ecx
mov dword [esp + 0x14], ebp
cmovne eax, esi
mov dword [esp + 0x44], eax
jmp 0x70829b
mov ebp, ecx
mov dword [esp + 0x44], esi
mov dword [esp + 0x14], ebp
jmp 0x70829b
mov ebp, ecx
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x7082ab
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 0xc
movsd xmm4, qword [ecx + 0xa8]
xorps xmm3, xmm3
mov eax, dword [ecx + 0x78]
mov esi, dword [ecx + 0x7c]
movsd xmm2, qword [ecx + 0x48]
movsd qword [esp + 0x30], xmm4
movsd qword [esp + 0x20], xmm3
mov dword [esp + 0x18], esi
test eax, eax
je 0x70830f
nop word [eax + eax]
mov edx, dword [eax]
mov dword [esp + 0x10], edx
movsd xmm1, qword [edx + 0xa8]
movsd xmm0, qword [edx + 0xa0]
subsd xmm1, xmm2
subsd xmm0, xmm2
mulsd xmm1, xmm0
comisd xmm3, xmm1
jae 0x708315
mov eax, dword [eax + 4]
test eax, eax
jne 0x7082e0
xor eax, eax
mov dword [esp + 0x10], eax
movsd xmm0, qword [ecx + 0x68]
mov edi, dword [esp + 0x3c]
comisd xmm0, xmm2
seta byte [esp + 0x40]
test esi, esi
je 0x708526
movsd xmm0, qword [esi + 0xb0]
ucomisd xmm0, xmm4
lahf
test ah, 0x44
jp 0x708526
movsd xmm0, qword [esi + 0xa8]
lea eax, [esp + 0x20]
sub esp, 0x10
subsd xmm0, xmm4
mov ecx, ebx
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm4
push eax
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.00710ec0
test al, al
je 0x708523
movsd xmm1, qword [esp + 0x28]
comisd xmm1, xmmword [esi + 0xa8]
jbe 0x708523
movsd xmm0, qword [esp + 0x30]
comisd xmm0, xmm1
jbe 0x708523
mov eax, dword [esi + 0x78]
xorps xmm3, xmm3
test eax, eax
je 0x708526
movsd xmm2, qword [esp + 0x20]
mov esi, dword [eax]
movsd xmm1, qword [esi + 0xa8]
movsd xmm0, qword [esi + 0xa0]
subsd xmm1, xmm2
subsd xmm0, xmm2
mulsd xmm1, xmm0
comisd xmm3, xmm1
jae 0x7083e1
mov eax, dword [eax + 4]
test eax, eax
jne 0x7083b1
jmp 0x708526
mov ecx, ebx
mov dword [esp + 0x10], esi
call fcn.007020f0
movsd xmm2, qword [esp + 0x28]
lea ecx, [ebx + 4]
push ecx
push dword [esp + 0x1c]
mov ebp, eax
mov ecx, ebp
mov dword [esp + 0x1c], ebp
call fcn.00702bf0
push dword [ebx]
mov ecx, ebp
call fcn.00709c60
push dword [ebx]
mov ecx, dword [esp + 0x1c]
call fcn.00709c60
cmp byte [ebp + 0x50], 0
movsd xmm0, qword [0x7f1b10]
jne 0x70842e
movsd qword [ebp + 0x48], xmm0
mov byte [ebp + 0x50], 1
cmp byte [ebp + 0x70], 0
jne 0x70843d
movsd qword [ebp + 0x68], xmm0
mov eax, dword [esp + 0x18]
mov byte [ebp + 0x70], 1
cmp byte [eax + 0x70], 0
jne 0x708450
movsd qword [eax + 0x68], xmm0
movsd xmm1, qword [esp + 0x20]
mov byte [eax + 0x70], 1
comisd xmm1, xmmword [esi + 0xa0]
jbe 0x708523
movsd xmm0, qword [esi + 0xa8]
comisd xmm0, xmm1
jbe 0x708523
mov ecx, edi
call fcn.00701510
movsd xmm2, qword [esp + 0x20]
lea ecx, [edi + 4]
push ecx
push esi
mov ecx, eax
mov dword [esp + 0x44], eax
call fcn.00702ad0
push dword [edi]
mov ecx, dword [esp + 0x40]
call fcn.00707d50
push dword [edi]
mov ecx, esi
call fcn.00707d50
cmp byte [esp + 0x40], 0
movsd xmm0, qword [0x7f1b10]
je 0x7084f2
cmp byte [esi + 0x68], 0
jne 0x7084c5
movsd qword [esi + 0x60], xmm0
mov eax, dword [esp + 0x3c]
mov byte [esi + 0x68], 1
cmp byte [eax + 0x48], 0
jne 0x7084d8
movsd qword [eax + 0x40], xmm0
mov byte [eax + 0x48], 1
cmp byte [eax + 0x68], 0
jne 0x7084e7
movsd qword [eax + 0x60], xmm0
mov byte [eax + 0x68], 1
mov edx, eax
xorps xmm3, xmm3
jmp 0x70852a
cmp byte [esi + 0x48], 0
jne 0x7084fd
movsd qword [esi + 0x40], xmm0
mov byte [esi + 0x48], 1
cmp byte [esi + 0x68], 0
jne 0x70850c
movsd qword [esi + 0x60], xmm0
mov eax, dword [esp + 0x3c]
mov byte [esi + 0x68], 1
cmp byte [eax + 0x48], 0
jne 0x70851f
movsd qword [eax + 0x40], xmm0
mov byte [eax + 0x48], 1
xorps xmm3, xmm3
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x44]
mov ecx, dword [ebx + 0x78]
movsd xmm2, qword [ebx + 0x68]
test ecx, ecx
je 0x70856b
nop word [eax + eax]
mov eax, dword [ecx]
movsd xmm1, qword [eax + 0xa8]
movsd xmm0, qword [eax + 0xa0]
subsd xmm1, xmm2
subsd xmm0, xmm2
mulsd xmm1, xmm0
comisd xmm3, xmm1
jae 0x70856d
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x708540
xor eax, eax
cmp byte [esp + 0x40], 0
mov ecx, edx
cmovne ecx, eax
cmovne eax, edx
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x80]
xor bh, bh
mov dword [esp + 0x10], ecx
mov dword [esp + 0x3c], eax
nop
mov esi, dword [ebp + 0x78]
xor bl, bl
test esi, esi
je 0x7085b5
nop dword [eax]
mov ecx, dword [esi]
push ebp
call fcn.00709b70
mov esi, dword [esi + 4]
or bl, al
test esi, esi
jne 0x7085a0
mov eax, dword [esp + 0x3c]
mov ebp, dword [ebp + 0x80]
or bh, bl
cmp ebp, eax
jne 0x708590
mov esi, dword [esp + 0x14]
mov byte [esp + 0x3c], bh
mov ebx, dword [esp + 0x1c]
push 1
push 8
mov dword [esi + 0x78], 0
lea ecx, [ebx + 4]
call fcn.0068a650
push eax
push 8
call fcn.004047d0
mov ebp, dword [esp + 0x20]
add esp, 8
xor bh, bh
mov dword [eax], ebp
mov ecx, dword [esi + 0x78]
mov dword [eax + 4], ecx
mov dword [esi + 0x78], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x78]
mov dword [esp + 0x20], eax
mov esi, dword [ebp + 0x70]
xor bl, bl
test esi, esi
je 0x708625
mov ecx, dword [esi]
push ebp
call fcn.00709d80
mov esi, dword [esi + 4]
or bl, al
test esi, esi
jne 0x708610
mov eax, dword [esp + 0x20]
mov ebp, dword [ebp + 0x78]
or bh, bl
cmp ebp, eax
jne 0x708607
mov ebp, dword [esp + 0x18]
lea ecx, [edi + 4]
push 1
push 8
mov dword [ebp + 0x70], 0
call fcn.0068a650
push eax
push 8
call fcn.004047d0
mov esi, dword [esp + 0x1c]
add esp, 8
or byte [esp + 0x3c], bh
mov ebx, dword [esp + 0x1c]
mov dword [eax], esi
mov ecx, dword [ebp + 0x70]
mov dword [eax + 4], ecx
mov dword [ebp + 0x70], eax
mov eax, dword [esp + 0x44]
cmp esi, eax
je 0x7086c0
mov edx, dword [esi + 0x80]
mov eax, dword [eax + 0x80]
mov dword [esp + 0x14], eax
test edx, edx
je 0x7086b3
mov ebp, eax
cmp edx, ebp
je 0x7086ab
mov ecx, dword [edx + 0x80]
dec dword [ebx + 0x24]
mov eax, dword [ebx + 0x20]
mov dword [edx + 0x80], eax
mov dword [ebx + 0x20], edx
mov byte [edx + 0xc4], 1
mov edx, ecx
test ecx, ecx
jne 0x708685
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x7086ba
mov dword [eax + 0x7c], esi
mov dword [esi + 0x80], eax
mov eax, dword [esp + 0x10]
cmp ebp, eax
je 0x70870a
mov edx, dword [ebp + 0x78]
mov eax, dword [eax + 0x78]
mov dword [esp + 0x18], eax
test edx, edx
je 0x708700
mov ebx, eax
cmp edx, ebx
je 0x7086f8
mov ecx, dword [edx + 0x78]
dec dword [edi + 0x24]
mov eax, dword [edi + 0x20]
mov dword [edx + 0x78], eax
mov dword [edi + 0x20], edx
mov byte [edx + 0xbc], 1
mov edx, ecx
test ecx, ecx
jne 0x7086d8
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x708707
mov dword [eax + 0x74], ebp
mov dword [ebp + 0x78], eax
mov eax, dword [esp + 0x44]
mov ecx, esi
movsd xmm0, qword [eax + 0xb0]
movsd qword [esi + 0xb0], xmm0
mov eax, dword [ebx]
push eax
mov word [esi + 0xc2], 0
call fcn.00709c60
movsd xmm0, qword [esi + 0xa8]
lea ecx, [esi + 0x38]
sub esp, 8
movsd qword [esp], xmm0
push dword [edi]
push esi
push dword [ebx]
call fcn.00705f00
movsd xmm0, qword [esi + 0xb0]
lea eax, [esi + 0x20]
sub esp, 8
lea ecx, [esi + 0x58]
movsd qword [esp], xmm0
push dword [edi]
push eax
push dword [ebx]
call fcn.00705f00
movsd xmm6, qword [esi + 0x48]
xorps xmm1, xmm1
movsd xmm4, qword [0x7f1790]
subsd xmm1, xmm6
movsd xmm3, qword [esi + 0x68]
movaps xmm0, xmm4
subsd xmm0, xmm6
xorps xmm2, xmm2
movaps xmm5, xmm6
mulsd xmm1, xmm0
comisd xmm2, xmm1
jb 0x7087f1
xorps xmm1, xmm1
movaps xmm0, xmm4
subsd xmm1, xmm3
subsd xmm0, xmm3
mulsd xmm1, xmm0
comisd xmm2, xmm1
jb 0x7087f1
cmp byte [esp + 0x40], 0
jne 0x7087c3
movaps xmm5, xmm3
movaps xmm3, xmm6
movsd qword [ebp + 0xa0], xmm5
mov ecx, ebp
movsd qword [ebp + 0xa8], xmm3
mov eax, dword [edi]
push eax
mov word [ebp + 0xba], 0
call fcn.00707d50
movsd xmm4, qword [0x7f1790]
xorps xmm2, xmm2
mov eax, dword [esi + 0x7c]
mov edx, dword [esi + 0x80]
mov dword [esp + 0x44], edx
test eax, eax
je 0x708811
mov dword [eax + 0x80], edx
test edx, edx
je 0x70881f
mov dword [edx + 0x7c], eax
jmp 0x70881f
mov dword [ebx + 0x18], edx
test edx, edx
je 0x70881f
mov dword [edx + 0x7c], 0
subsd xmm4, qword [esi + 0x48]
xorps xmm1, xmm1
subsd xmm1, qword [esi + 0x48]
mulsd xmm1, xmm4
comisd xmm2, xmm1
setae al
dec dword [ebx + 0x24]
test al, al
jne 0x708853
mov eax, dword [ebx + 0x20]
mov dword [esi + 0x80], eax
mov dword [ebx + 0x20], esi
mov byte [esi + 0xc4], 1
jmp 0x70885f
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0x80], eax
mov dword [ebx + 0x1c], esi
mov ecx, dword [ebp + 0x74]
mov eax, dword [ebp + 0x78]
test ecx, ecx
je 0x708875
mov dword [ecx + 0x78], eax
test eax, eax
je 0x708883
mov dword [eax + 0x74], ecx
jmp 0x708883
mov dword [edi + 0x18], eax
test eax, eax
je 0x708883
mov dword [eax + 0x74], 0
dec dword [edi + 0x24]
cmp byte [esp + 0x3c], 0
mov eax, dword [edi + 0x1c]
mov dword [ebp + 0x78], eax
mov dword [edi + 0x1c], ebp
je 0x70893b
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x7088ed
cmp dword [edx + 0x78], 0
mov ecx, dword [edx + 0x80]
jne 0x7088e7
mov eax, dword [edx + 0x7c]
test eax, eax
je 0x7088c3
mov dword [eax + 0x80], ecx
test ecx, ecx
je 0x7088d1
mov dword [ecx + 0x7c], eax
jmp 0x7088d1
mov dword [ebx + 0x18], ecx
test ecx, ecx
je 0x7088d1
mov dword [ecx + 0x7c], 0
mov eax, dword [ebx + 0x20]
dec dword [ebx + 0x24]
mov dword [edx + 0x80], eax
mov dword [ebx + 0x20], edx
mov byte [edx + 0xc4], 1
mov edx, ecx
test ecx, ecx
jne 0x7088a1
mov edx, dword [edi + 0x18]
test edx, edx
je 0x708937
cmp dword [edx + 0x70], 0
mov ecx, dword [edx + 0x78]
jne 0x708931
mov eax, dword [edx + 0x74]
test eax, eax
je 0x708910
mov dword [eax + 0x78], ecx
test ecx, ecx
je 0x70891e
mov dword [ecx + 0x74], eax
jmp 0x70891e
mov dword [edi + 0x18], ecx
test ecx, ecx
je 0x70891e
mov dword [ecx + 0x74], 0
mov eax, dword [edi + 0x20]
dec dword [edi + 0x24]
mov dword [edx + 0x78], eax
mov dword [edi + 0x20], edx
mov byte [edx + 0xbc], 1
mov edx, ecx
test ecx, ecx
jne 0x7088f4
mov edx, dword [esp + 0x44]
test edx, edx
je 0x708948
cmp byte [edx + 0xc4], 0
je 0x70894a
xor edx, edx
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0x28
ret 0xc