Function at 0x6226f0
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 edi, dword [esp + 0x3c]
xor ecx, ecx
mov dword [esp + 0x1c], ebx
nop dword [eax]
cmp byte [edx + 0x50], 0
je 0x62272d
cmp byte [edx + 0x70], 0
je 0x622748
test ecx, ecx
mov eax, edx
mov esi, edx
cmovne eax, ecx
mov ecx, eax
mov eax, dword [esp + 0x44]
jmp 0x62273c
test ecx, ecx
je 0x62273a
cmp byte [edx + 0xc0], 0
jne 0x622759
xor esi, esi
cmp edx, eax
je 0x622765
mov edx, dword [edx + 0x80]
jmp 0x622710
test esi, esi
mov ebp, ecx
mov dword [esp + 0x14], ebp
cmovne eax, esi
mov dword [esp + 0x44], eax
jmp 0x62276b
mov ebp, ecx
mov dword [esp + 0x44], esi
mov dword [esp + 0x14], ebp
jmp 0x62276b
mov ebp, ecx
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x62277b
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 + 0x28], xmm3
mov dword [esp + 0x18], esi
test eax, eax
je 0x6227df
nop word [eax + eax]
mov edx, dword [eax]
mov dword [esp + 0x40], edx
movsd xmm1, qword [edx + 0xa8]
movsd xmm0, qword [edx + 0xa0]
subsd xmm1, xmm2
subsd xmm0, xmm2
mulsd xmm1, xmm0
comisd xmm3, xmm1
jae 0x6227e5
mov eax, dword [eax + 4]
test eax, eax
jne 0x6227b0
xor eax, eax
mov dword [esp + 0x40], eax
movsd xmm0, qword [ecx + 0x68]
comisd xmm0, xmm2
seta byte [esp + 0x3c]
test esi, esi
je 0x622add
movsd xmm0, qword [esi + 0xb0]
ucomisd xmm0, xmm4
lahf
test ah, 0x44
jp 0x622add
movsd xmm0, qword [esi + 0xa8]
lea eax, [esp + 0x28]
sub esp, 0x10
subsd xmm0, xmm4
mov ecx, ebx
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm4
push eax
lea eax, [esp + 0x34]
push eax
push edi
call fcn.0062b840
test al, al
je 0x622ada
movsd xmm1, qword [esp + 0x20]
comisd xmm1, xmmword [esi + 0xa8]
jbe 0x622ada
movsd xmm0, qword [esp + 0x30]
comisd xmm0, xmm1
jbe 0x622ada
mov eax, dword [esi + 0x78]
xorps xmm3, xmm3
test eax, eax
je 0x622add
movsd xmm2, qword [esp + 0x28]
nop dword [eax]
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 0x6228b0
mov eax, dword [eax + 4]
test eax, eax
jne 0x622880
jmp 0x622add
mov ebp, dword [ebx + 0x20]
mov dword [esp + 0x40], esi
mov dword [esp + 0x14], ebp
test ebp, ebp
je 0x6228d1
mov eax, dword [ebp + 0x80]
mov dword [ebp + 0x78], 0
mov dword [ebx + 0x20], eax
jmp 0x622924
push 1
push 0xc8
lea ecx, [ebx + 4]
call fcn.005a3500
push eax
push 0xc8
call fcn.004047f0
movsd xmm0, qword [0x6f2e98]
mov ebp, eax
movaps xmm1, xmmword [0x6f3350]
add esp, 8
mov dword [esp + 0x14], ebp
movsd qword [ebp + 0x48], xmm0
mov byte [ebp + 0x50], 0
movups xmmword [ebp + 0x38], xmm1
mov byte [ebp + 0x70], 0
movsd qword [ebp + 0x68], xmm0
movups xmmword [ebp + 0x58], xmm1
mov dword [ebp + 0x78], 0
movsd xmm2, qword [esp + 0x20]
lea eax, [ebx + 4]
push eax
push dword [esp + 0x1c]
mov byte [ebp + 0xc1], 0
mov ecx, ebp
mov byte [ebp + 0xc4], 0
inc dword [ebx + 0x24]
call fcn.0061d040
push dword [ebx]
mov ecx, ebp
call fcn.00624280
push dword [ebx]
mov ecx, dword [esp + 0x1c]
call fcn.00624280
cmp byte [ebp + 0x50], 0
movsd xmm0, qword [0x6f2e98]
jne 0x622971
movsd qword [ebp + 0x48], xmm0
mov byte [ebp + 0x50], 1
cmp byte [ebp + 0x70], 0
jne 0x622980
movsd qword [ebp + 0x68], xmm0
mov eax, dword [esp + 0x18]
mov byte [ebp + 0x70], 1
cmp byte [eax + 0x70], 0
jne 0x622993
movsd qword [eax + 0x68], xmm0
movsd xmm1, qword [esp + 0x28]
mov byte [eax + 0x70], 1
comisd xmm1, xmmword [esi + 0xa0]
jbe 0x622ada
movsd xmm0, qword [esi + 0xa8]
comisd xmm0, xmm1
jbe 0x622ada
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x18], ecx
test ecx, ecx
je 0x6229d7
mov eax, dword [ecx + 0x78]
mov dword [ecx + 0x70], 0
mov dword [edi + 0x20], eax
jmp 0x622a30
push 1
push 0xc0
lea ecx, [edi + 4]
call fcn.005a3500
push eax
push 0xc0
call fcn.004047f0
movaps xmm1, xmmword [0x6f3350]
mov ecx, eax
movsd xmm0, qword [0x6f2e98]
add esp, 8
mov dword [esp + 0x18], ecx
movups xmmword [ecx + 0x30], xmm1
mov byte [ecx + 0x48], 0
movsd qword [ecx + 0x40], xmm0
movups xmmword [ecx + 0x50], xmm1
mov byte [ecx + 0x68], 0
movsd xmm1, qword [esp + 0x28]
movsd qword [ecx + 0x60], xmm0
mov dword [ecx + 0x70], 0
lea eax, [edi + 4]
mov byte [ecx + 0xb9], 0
push eax
mov byte [ecx + 0xbc], 0
movaps xmm2, xmm1
inc dword [edi + 0x24]
push esi
call fcn.0061cf20
push dword [edi]
mov ecx, dword [esp + 0x1c]
call fcn.006221b0
push dword [edi]
mov ecx, esi
call fcn.006221b0
cmp byte [esp + 0x3c], 0
movsd xmm0, qword [0x6f2e98]
je 0x622aa9
cmp byte [esi + 0x68], 0
jne 0x622a7c
movsd qword [esi + 0x60], xmm0
mov eax, dword [esp + 0x18]
mov byte [esi + 0x68], 1
cmp byte [eax + 0x48], 0
jne 0x622a8f
movsd qword [eax + 0x40], xmm0
mov byte [eax + 0x48], 1
cmp byte [eax + 0x68], 0
jne 0x622a9e
movsd qword [eax + 0x60], xmm0
mov byte [eax + 0x68], 1
mov edx, eax
xorps xmm3, xmm3
jmp 0x622ae1
cmp byte [esi + 0x48], 0
jne 0x622ab4
movsd qword [esi + 0x40], xmm0
mov byte [esi + 0x48], 1
cmp byte [esi + 0x68], 0
jne 0x622ac3
movsd qword [esi + 0x60], xmm0
mov eax, dword [esp + 0x18]
mov byte [esi + 0x68], 1
cmp byte [eax + 0x48], 0
jne 0x622ad6
movsd qword [eax + 0x40], xmm0
mov byte [eax + 0x48], 1
xorps xmm3, xmm3
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
mov ecx, dword [ebx + 0x78]
movsd xmm2, qword [ebx + 0x68]
test ecx, ecx
je 0x622b1c
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 0x622b1e
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x622af1
xor eax, eax
cmp byte [esp + 0x3c], 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 + 0x20], ecx
mov dword [esp + 0x40], eax
nop
mov esi, dword [ebp + 0x78]
xor bl, bl
test esi, esi
je 0x622b65
nop dword [eax]
mov ecx, dword [esi]
push ebp
call fcn.00624190
mov esi, dword [esi + 4]
or bl, al
test esi, esi
jne 0x622b50
mov eax, dword [esp + 0x40]
mov ebp, dword [ebp + 0x80]
or bh, bl
cmp ebp, eax
jne 0x622b40
mov esi, dword [esp + 0x14]
mov byte [esp + 0x40], bh
mov ebx, dword [esp + 0x1c]
push 1
push 8
mov dword [esi + 0x78], 0
lea ecx, [ebx + 4]
call fcn.005a3500
push eax
push 8
call fcn.004047f0
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 + 0x20]
mov eax, dword [eax + 0x78]
mov dword [esp + 0x28], eax
mov esi, dword [ebp + 0x70]
xor bl, bl
test esi, esi
je 0x622bd5
mov ecx, dword [esi]
push ebp
call fcn.006243a0
mov esi, dword [esi + 4]
or bl, al
test esi, esi
jne 0x622bc0
mov eax, dword [esp + 0x28]
mov ebp, dword [ebp + 0x78]
or bh, bl
cmp ebp, eax
jne 0x622bb7
mov ebp, dword [esp + 0x18]
lea ecx, [edi + 4]
push 1
push 8
mov dword [ebp + 0x70], 0
call fcn.005a3500
push eax
push 8
call fcn.004047f0
mov esi, dword [esp + 0x1c]
add esp, 8
or byte [esp + 0x40], 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 0x622c70
mov edx, dword [esi + 0x80]
mov eax, dword [eax + 0x80]
mov dword [esp + 0x14], eax
test edx, edx
je 0x622c63
mov ebp, eax
cmp edx, ebp
je 0x622c5b
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 0x622c35
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x622c6a
mov dword [eax + 0x7c], esi
mov dword [esi + 0x80], eax
mov eax, dword [esp + 0x20]
cmp ebp, eax
je 0x622cba
mov edx, dword [ebp + 0x78]
mov eax, dword [eax + 0x78]
mov dword [esp + 0x20], eax
test edx, edx
je 0x622cb0
mov ebx, eax
cmp edx, ebx
je 0x622ca8
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 0x622c88
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x622cb7
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.00624280
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.00620350
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.00620350
movsd xmm6, qword [esi + 0x48]
xorps xmm1, xmm1
movsd xmm4, qword [0x6f2c18]
subsd xmm1, xmm6
movsd xmm2, qword [esi + 0x68]
movaps xmm0, xmm4
subsd xmm0, xmm6
xorps xmm3, xmm3
movaps xmm5, xmm6
mulsd xmm1, xmm0
comisd xmm3, xmm1
jb 0x622da1
xorps xmm1, xmm1
movaps xmm0, xmm4
subsd xmm1, xmm2
subsd xmm0, xmm2
mulsd xmm1, xmm0
comisd xmm3, xmm1
jb 0x622da1
cmp byte [esp + 0x3c], 0
jne 0x622d73
movaps xmm5, xmm2
movaps xmm2, xmm6
movsd qword [ebp + 0xa0], xmm5
mov ecx, ebp
movsd qword [ebp + 0xa8], xmm2
mov eax, dword [edi]
push eax
mov word [ebp + 0xba], 0
call fcn.006221b0
movsd xmm4, qword [0x6f2c18]
xorps xmm3, xmm3
mov eax, dword [esi + 0x7c]
mov edx, dword [esi + 0x80]
mov dword [esp + 0x44], edx
test eax, eax
je 0x622dc1
mov dword [eax + 0x80], edx
test edx, edx
je 0x622dcf
mov dword [edx + 0x7c], eax
jmp 0x622dcf
mov dword [ebx + 0x18], edx
test edx, edx
je 0x622dcf
mov dword [edx + 0x7c], 0
subsd xmm4, qword [esi + 0x48]
xorps xmm1, xmm1
subsd xmm1, qword [esi + 0x48]
mulsd xmm1, xmm4
comisd xmm3, xmm1
setae al
dec dword [ebx + 0x24]
test al, al
jne 0x622e03
mov eax, dword [ebx + 0x20]
mov dword [esi + 0x80], eax
mov dword [ebx + 0x20], esi
mov byte [esi + 0xc4], 1
jmp 0x622e0f
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 0x622e25
mov dword [ecx + 0x78], eax
test eax, eax
je 0x622e33
mov dword [eax + 0x74], ecx
jmp 0x622e33
mov dword [edi + 0x18], eax
test eax, eax
je 0x622e33
mov dword [eax + 0x74], 0
dec dword [edi + 0x24]
cmp byte [esp + 0x40], 0
mov eax, dword [edi + 0x1c]
mov dword [ebp + 0x78], eax
mov dword [edi + 0x1c], ebp
je 0x622eeb
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x622e9d
cmp dword [edx + 0x78], 0
mov ecx, dword [edx + 0x80]
jne 0x622e97
mov eax, dword [edx + 0x7c]
test eax, eax
je 0x622e73
mov dword [eax + 0x80], ecx
test ecx, ecx
je 0x622e81
mov dword [ecx + 0x7c], eax
jmp 0x622e81
mov dword [ebx + 0x18], ecx
test ecx, ecx
je 0x622e81
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 0x622e51
mov edx, dword [edi + 0x18]
test edx, edx
je 0x622ee7
cmp dword [edx + 0x70], 0
mov ecx, dword [edx + 0x78]
jne 0x622ee1
mov eax, dword [edx + 0x74]
test eax, eax
je 0x622ec0
mov dword [eax + 0x78], ecx
test ecx, ecx
je 0x622ece
mov dword [ecx + 0x74], eax
jmp 0x622ece
mov dword [edi + 0x18], ecx
test ecx, ecx
je 0x622ece
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 0x622ea4
mov edx, dword [esp + 0x44]
test edx, edx
je 0x622ef8
cmp byte [edx + 0xc4], 0
je 0x622efa
xor edx, edx
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0x28
ret 0xc