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

Disassembly:
sub esp, 0x20
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
push ebx
push ebp
push esi
push edi
xor edi, edi
mov dword [esp + 0x10], ecx
xor esi, esi
cmp byte [edx + 0x50], 0
je 0x624684
cmp byte [edx + 0x70], 0
je 0x62469f
test esi, esi
mov eax, edx
mov edi, edx
cmovne eax, esi
mov esi, eax
mov eax, dword [esp + 0x3c]
jmp 0x624693
test esi, esi
je 0x624691
cmp byte [edx + 0xc0], 0
jne 0x6246be
xor edi, edi
cmp edx, eax
je 0x6246a8
mov edx, dword [edx + 0x80]
jmp 0x624667
test edi, edi
cmovne eax, edi
mov dword [esp + 0x3c], eax
mov edi, dword [esp + 0x3c]
mov ebx, esi
test esi, esi
jne 0x6246c4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
mov dword [esp + 0x3c], edi
jmp 0x6246ac
movsd xmm4, qword [esi + 0xa8]
xorps xmm2, xmm2
mov eax, dword [esi + 0x78]
mov ecx, dword [esi + 0x7c]
movsd xmm3, qword [esi + 0x48]
movsd qword [esp + 0x28], xmm4
movsd qword [esp + 0x18], xmm2
mov dword [esp + 0x14], ecx
test eax, eax
je 0x62471b
nop
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 0x62471d
mov eax, dword [eax + 4]
test eax, eax
jne 0x6246f0
xor ebp, ebp
movsd xmm0, qword [esi + 0x68]
mov edx, dword [esp + 0x34]
comisd xmm0, xmm3
seta al
mov byte [esp + 0x38], al
test ecx, ecx
je 0x6248e7
movsd xmm0, qword [ecx + 0xb0]
ucomisd xmm0, xmm4
lahf
test ah, 0x44
jp 0x6248e7
movsd xmm0, qword [ecx + 0xa8]
lea eax, [esp + 0x18]
mov ecx, dword [esp + 0x10]
subsd xmm0, xmm4
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm4
push eax
lea eax, [esp + 0x34]
push eax
push edx
call fcn.0062cb20
test al, al
je 0x6248e4
mov ecx, dword [esp + 0x14]
movsd xmm4, qword [esp + 0x20]
comisd xmm4, xmmword [ecx + 0xa8]
jbe 0x6248e4
movsd xmm0, qword [esp + 0x28]
xorps xmm2, xmm2
comisd xmm0, xmm4
jbe 0x6248e7
mov eax, dword [ecx + 0x78]
test eax, eax
je 0x6248e7
movsd xmm3, qword [esp + 0x18]
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 0x6247f1
mov eax, dword [eax + 4]
test eax, eax
jne 0x6247c1
jmp 0x6248e7
push ecx
mov ecx, dword [esp + 0x14]
movaps xmm2, xmm4
mov ebp, esi
call fcn.0062afe0
movsd xmm0, qword [0x6f2e98]
mov ebx, eax
cmp byte [ebx + 0x50], 0
jne 0x624815
movsd qword [ebx + 0x48], xmm0
mov byte [ebx + 0x50], 1
cmp byte [ebx + 0x70], 0
jne 0x624824
movsd qword [ebx + 0x68], xmm0
mov eax, dword [esp + 0x14]
mov byte [ebx + 0x70], 1
cmp byte [eax + 0x70], 0
jne 0x624837
movsd qword [eax + 0x68], xmm0
movsd xmm1, qword [esp + 0x18]
mov byte [eax + 0x70], 1
comisd xmm1, xmmword [esi + 0xa8]
jbe 0x6248e4
movsd xmm0, qword [esi + 0xb0]
comisd xmm0, xmm1
jbe 0x6248e4
mov ecx, dword [esp + 0x34]
movaps xmm2, xmm1
push esi
call fcn.0062afe0
mov cl, byte [esp + 0x38]
movsd xmm0, qword [0x6f2e98]
test cl, cl
je 0x6248b2
cmp byte [esi + 0x70], 0
jne 0x624889
movsd qword [esi + 0x68], xmm0
mov byte [esi + 0x70], 1
cmp byte [eax + 0x50], 0
jne 0x624898
movsd qword [eax + 0x48], xmm0
mov byte [eax + 0x50], 1
cmp byte [eax + 0x70], 0
jne 0x6248a7
movsd qword [eax + 0x68], xmm0
mov byte [eax + 0x70], 1
mov ebp, eax
xorps xmm2, xmm2
jmp 0x6248eb
cmp byte [esi + 0x50], 0
jne 0x6248bd
movsd qword [esi + 0x48], xmm0
mov byte [esi + 0x50], 1
cmp byte [esi + 0x70], 0
jne 0x6248cc
movsd qword [esi + 0x68], xmm0
mov byte [esi + 0x70], 1
cmp byte [eax + 0x50], 0
jne 0x6248db
movsd qword [eax + 0x48], xmm0
mov byte [eax + 0x50], 1
xorps xmm2, xmm2
jmp 0x6248eb
xorps xmm2, xmm2
mov cl, byte [esp + 0x38]
mov eax, dword [edi + 0x78]
movsd xmm3, qword [edi + 0x68]
test eax, eax
je 0x62492b
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 0x62492d
mov eax, dword [eax + 4]
test eax, eax
jne 0x624900
xor edi, edi
test cl, cl
mov esi, ebp
mov ecx, dword [esp + 0x10]
cmovne esi, edi
cmovne edi, ebp
mov ebp, dword [esp + 0x3c]
push edi
push ebp
push ebx
call fcn.0062ce70
mov ecx, dword [esp + 0x34]
push ebx
push esi
push edi
mov byte [esp + 0x48], al
call fcn.0062ce70
mov ecx, dword [esp + 0x10]
or byte [esp + 0x3c], al
push ebp
push ebx
call fcn.0062ce10
mov ecx, dword [esp + 0x34]
push esi
push edi
call fcn.0062ce10
movsd xmm0, qword [ebp + 0xb0]
mov ecx, ebx
mov esi, dword [esp + 0x10]
movsd qword [ebx + 0xb0], xmm0
mov eax, dword [esi]
push eax
mov word [ebx + 0xc2], 0
call fcn.00624280
mov ebp, dword [esp + 0x34]
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.006205c0
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.006205c0
movsd xmm6, qword [ebx + 0x48]
xorps xmm1, xmm1
movsd xmm4, qword [0x6f2c18]
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 0x624a5f
xorps xmm1, xmm1
movaps xmm0, xmm4
subsd xmm1, xmm3
subsd xmm0, xmm3
mulsd xmm1, xmm0
comisd xmm2, xmm1
jb 0x624a5f
cmp byte [esp + 0x38], 0
jne 0x624a30
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.00624280
movsd xmm4, qword [0x6f2c18]
xorps xmm2, xmm2
mov eax, dword [ebx + 0x7c]
mov esi, dword [ebx + 0x80]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x624a7f
mov dword [eax + 0x80], esi
test esi, esi
je 0x624a8d
mov dword [esi + 0x7c], eax
jmp 0x624a8d
mov dword [ecx + 0x18], esi
test esi, esi
je 0x624a8d
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 0x624ac1
mov eax, dword [ecx + 0x20]
mov dword [ebx + 0x80], eax
mov dword [ecx + 0x20], ebx
mov byte [ebx + 0xc4], 1
jmp 0x624acd
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 0x624ae9
mov dword [edx + 0x80], eax
test eax, eax
je 0x624af7
mov dword [eax + 0x7c], edx
jmp 0x624af7
mov dword [ebp + 0x18], eax
test eax, eax
je 0x624af7
mov dword [eax + 0x7c], 0
dec dword [ebp + 0x24]
cmp byte [esp + 0x3c], 0
mov eax, dword [ebp + 0x1c]
mov dword [edi + 0x80], eax
mov dword [ebp + 0x1c], edi
je 0x624b19
call fcn.0062cdb0
mov ecx, ebp
call fcn.0062cdb0
test esi, esi
je 0x624b26
cmp byte [esi + 0xc4], 0
je 0x624b28
xor esi, esi
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc