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

Disassembly:
push 0xffffffffffffffff
push 0x1035a698
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push esi
push edi
mov eax, dword [0x105be7d0]
xor eax, esp
push eax
lea eax, [esp + 0x74]
mov dword fs:[0], eax
mov esi, edx
mov dword [esp + 0x5c], esi
movss dword [esp + 0x54], xmm3
movss dword [esp + 0x50], xmm2
movss dword [esp + 0x4c], xmm1
mov dword [esp + 0x64], ecx
cmp dword [esi], 2
mov dword [esp + 0x60], str.q__DeviceRGB_cs__GS_gs__f__f__f_rg
mov dword [esp + 0x68], str._f__f__f__f_re_f_n
jne 0x10212836
mov dword [esp + 0x60], str.q__DeviceRGB_CS__f__f__f_RG_1_w____0_d
mov dword [esp + 0x68], str._f__f_m__f__f_l_S_n
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x7c], 0
mov eax, dword [esi + 0x24]
sub eax, dword [esi + 0x20]
sar eax, 4
test eax, eax
je 0x10212883
cmp eax, 0x1fffffff
jbe 0x10212875
push str.vector_T__too_long
call dword [sym.imp.MSVCP120.dll_void___cdecl_std::_Xlength_error_char_const__]
push eax
lea ecx, [esp + 0x3c]
call fcn.10214c00
mov ecx, dword [esp + 0x64]
mov edi, dword [esi + 0x24]
mov esi, dword [esi + 0x20]
mov dword [esp + 0x6c], 0
cmp esi, edi
je 0x10212a84
lea esp, [esp]
movss xmm0, dword [esi]
movss xmm1, dword [esi + 4]
movss xmm2, dword [esi + 8]
movss xmm7, dword [ecx + 0x10]
movss xmm5, dword [ecx + 8]
movss xmm6, dword [ecx + 0xc]
movss xmm3, dword [esi + 0xc]
movss dword [esp + 0x28], xmm0
movaps xmm0, xmm5
movss dword [esp + 0x2c], xmm1
movaps xmm1, xmm7
movss dword [esp + 0x30], xmm2
movss xmm2, dword [ecx + 4]
mulss xmm0, xmm6
mulss xmm1, xmm2
movss dword [esp + 0x34], xmm3
subss xmm1, xmm0
movss xmm0, dword [0x10588d80]
comiss xmm0, xmm1
ja 0x10212922
comiss xmm1, dword [0x1058887c]
ja 0x10212922
movdqu xmm0, xmmword [ecx + 4]
movdqu xmmword [esp + 0x10], xmm0
movq xmm0, qword [ecx + 0x14]
movq qword [esp + 0x20], xmm0
jmp 0x102129a2
movss xmm4, dword [0x10588970]
divss xmm4, xmm1
movss xmm3, dword [ecx + 0x14]
movss xmm0, dword [0x105890e0]
movss xmm1, dword [ecx + 0x18]
mulss xmm7, xmm4
mulss xmm5, xmm4
mulss xmm6, xmm4
mulss xmm4, xmm2
movaps xmm2, xmm3
mulss xmm2, xmm7
xorps xmm5, xmm0
xorps xmm6, xmm0
mulss xmm3, xmm5
xorps xmm2, xmm0
movss dword [esp + 0x10], xmm7
movaps xmm0, xmm1
movss dword [esp + 0x14], xmm5
xorps xmm3, xmmword [0x105890e0]
mulss xmm0, xmm6
mulss xmm1, xmm4
subss xmm2, xmm0
movss dword [esp + 0x18], xmm6
movss dword [esp + 0x1c], xmm4
subss xmm3, xmm1
movss dword [esp + 0x20], xmm2
movss dword [esp + 0x24], xmm3
lea edx, [esp + 0x10]
lea ecx, [esp + 0x28]
call fcn.101e0910
mov eax, dword [esp + 0x84]
sub esp, 0x20
movss xmm4, dword [esp + 0x4c]
movss xmm3, dword [esp + 0x48]
movaps xmm1, xmm4
movss xmm2, dword [esp + 0x50]
subss xmm3, dword [eax]
subss xmm1, dword [eax + 4]
mov eax, dword [esp + 0x7c]
subss xmm2, dword [esp + 0x48]
cmp dword [eax], 2
jne 0x102129fb
addss xmm1, dword [0x1058891c]
xorps xmm0, xmm0
addss xmm2, xmm3
cvtss2sd xmm0, xmm1
jmp 0x10212a08
movss xmm0, dword [esp + 0x54]
subss xmm0, xmm4
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
cvtps2pd xmm0, xmm2
movsd qword [esp + 0x10], xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
movsd qword [esp + 8], xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm3
movsd qword [esp], xmm0
push dword [esp + 0x88]
call fcn.101c91c0
mov edx, eax
add esp, 0x24
test edx, edx
je 0x10212a75
mov ecx, edx
lea eax, [ecx + 1]
mov dword [esp + 0x58], eax
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10212a50
sub ecx, dword [esp + 0x58]
lea eax, [esp + 0x44]
add dword [esp + 0x6c], ecx
mov dword [esp + 0x48], ecx
lea ecx, [esp + 0x38]
push eax
mov dword [esp + 0x48], edx
call fcn.10214b50
mov ecx, dword [esp + 0x64]
add esi, 0x10
cmp esi, edi
jne 0x102128a0
mov edi, dword [esp + 0x38]
cmp edi, dword [esp + 0x3c]
jne 0x10212a95
xor esi, esi
jmp 0x10212b77
movss xmm0, dword [esp + 0x54]
sub esp, 0x18
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
movss xmm0, dword [esp + 0x68]
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [esp + 0x64]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push dword [esp + 0x78]
call fcn.101c91c0
add esp, 0x1c
mov dword [esp + 0x60], eax
test eax, eax
je 0x10212af1
mov esi, eax
lea ecx, [esi + 1]
lea ecx, [ecx]
mov al, byte [esi]
inc esi
test al, al
jne 0x10212ae0
mov eax, dword [esp + 0x6c]
sub esi, ecx
add eax, esi
jmp 0x10212af7
mov eax, dword [esp + 0x6c]
xor esi, esi
add eax, 3
push eax
call dword [sym.imp.MSVCR120.dll_malloc]
push esi
push dword [esp + 0x68]
mov dword [esp + 0x70], eax
push eax
call sub.MSVCR120.dll_memcpy
mov eax, dword [esp + 0x74]
push dword [esp + 0x70]
add eax, esi
mov dword [esp + 0x80], eax
call dword [sym.imp.MSVCR120.dll_free]
add esp, 0x14
mov esi, edi
lea esp, [esp]
mov edi, dword [esi + 4]
mov eax, dword [esi]
push edi
push eax
push dword [esp + 0x74]
mov dword [esp + 0x58], eax
call sub.MSVCR120.dll_memcpy
push dword [esp + 0x58]
add dword [esp + 0x7c], edi
call dword [sym.imp.MSVCR120.dll_free]
add esi, 8
add esp, 0x10
cmp esi, dword [esp + 0x3c]
jne 0x10212b30
mov ecx, dword [esp + 0x6c]
mov ax, word [0x10568fa4]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x64]
mov word [ecx], ax
mov byte [ecx + 2], 0
mov dword [esp + 0x7c], 0xffffffff
test edi, edi
je 0x10212ba5
push edi
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov eax, esi
mov ecx, dword [esp + 0x74]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x74
ret