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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xa8
mov eax, dword [0x1019c020]
xor eax, esp
mov dword [esp + 0xa4], eax
push esi
push edi
mov edi, dword [ebp + 8]
xorps xmm3, xmm3
mov dword [esp + 0x20], edi
movss xmm0, dword [edi + 0x3c]
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jnp 0x100b5fef
movups xmm0, xmmword [edi + 0x3c]
movups xmmword [edi + 0xe784], xmm0
cmp dword [edi + 0xd8], 0
movss xmm2, dword [0x101922a0]
jne 0x100b6022
cmp dword [edi + 0xdc], 0
je 0x100b6728
movss xmm0, dword [edi + 0xe774]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x100b6420
push 0x40
lea eax, [esp + 0x54]
push 0
push eax
call fcn.1012df50
mov ecx, dword [edi + 0xcc]
add esp, 0xc
mov eax, dword [edi + 0xd4]
movzx edx, word [edi + 0x66b6]
add eax, ecx
movsd xmm0, qword [esp + 0x68]
mov esi, edx
movsd xmm1, qword [esp + 0x88]
movsd xmm2, qword [esp + 0x80]
movsd xmm3, qword [esp + 0x78]
movsd xmm4, qword [esp + 0x70]
movsd xmm7, qword [esp + 0x60]
movsd xmm6, qword [esp + 0x58]
movsd xmm5, qword [esp + 0x50]
mov dword [esp + 0x28], ecx
movzx ecx, word [edi + 0x66b4]
cmp eax, ecx
movsd qword [esp + 0x98], xmm0
cmovb ecx, eax
mov eax, dword [edi + 0xd0]
add eax, dword [edi + 0xc8]
cmp eax, edx
mov dword [esp + 0x2c], ecx
cmovb esi, eax
mov eax, dword [edi + 0xcc]
mov dword [esp + 0x3c], esi
cmp eax, ecx
jae 0x100b6392
mov edi, edx
imul edi, eax
add eax, 8
shl edx, 3
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x20]
nop dword [eax + eax]
mov edx, dword [edi + 0xc8]
mov dword [esp + 0x10], edx
cmp edx, esi
jae 0x100b636c
mov ecx, dword [esp + 0x28]
xorps xmm0, xmm0
movaps xmmword [esp + 0x50], xmm0
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x24], ecx
cmp ecx, eax
jae 0x100b625d
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], eax
nop word [eax + eax]
cmp ecx, dword [esp + 0x2c]
jae 0x100b625d
mov eax, edx
add edx, 8
mov dword [esp + 0x38], eax
cmp dword [esp + 0x10], edx
jae 0x100b623f
mov edx, ecx
and edx, 7
add edx, edx
and ecx, 7
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ecx
nop
cmp eax, esi
jae 0x100b623b
mov ecx, dword [esp + 0x40]
and eax, 1
mov edx, dword [edi + 0x65b0]
add ecx, eax
add ecx, ecx
xor esi, esi
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x44]
lea ecx, [eax + ecx*2]
mov eax, edx
add ecx, ecx
shr eax, cl
and eax, 3
add eax, eax
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 0x65fc]
add eax, 0xffffffe7
mov dword [esp + 0x34], eax
test edx, edx
je 0x100b61d9
mov ecx, dword [esp + 0x48]
mov esi, edx
mov edx, dword [esp + 0x24]
movzx eax, word [edi + 0x66c0]
shr esi, cl
movzx ecx, word [edi + 0x66bc]
and esi, 3
shr edx, cl
imul edx, eax
mov eax, dword [esp + 0x38]
shr eax, cl
add edx, eax
mov eax, dword [esp + 0x4c]
lea ecx, [eax + edx*8]
mov eax, dword [edi + 0x66e0]
mov edx, dword [edi + 0x65b0]
movzx eax, word [ecx + eax]
jmp 0x100b61ee
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x30]
lea ecx, [esi + eax*4]
mov eax, dword [edi + 0x66e0]
movzx eax, word [eax + ecx*2]
movzx ecx, ax
cmp ecx, dword [esp + 0x34]
jg 0x100b634d
sub ecx, dword [edi + 0x65f8]
mov eax, 0
cmovns eax, ecx
inc dword [esp + esi*4 + 0x60]
add dword [esp + esi*4 + 0x50], eax
test edx, edx
jne 0x100b621f
inc esi
cmp esi, 4
jb 0x100b6192
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
inc eax
mov esi, dword [esp + 0x3c]
add ecx, 8
mov dword [esp + 0x38], eax
cmp eax, ecx
jb 0x100b6150
mov ecx, dword [esp + 0x24]
movzx eax, word [edi + 0x66b6]
inc ecx
add dword [esp + 0x30], eax
mov edx, dword [esp + 0x10]
mov dword [esp + 0x24], ecx
cmp ecx, dword [esp + 0x1c]
jb 0x100b6120
mov eax, dword [esp + 0x50]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101923d0]
mov eax, dword [esp + 0x54]
addsd xmm5, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101923d0]
mov eax, dword [esp + 0x58]
addsd xmm6, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101923d0]
mov eax, dword [esp + 0x5c]
addsd xmm7, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101923d0]
mov eax, dword [esp + 0x60]
addsd xmm0, qword [esp + 0x98]
movsd qword [esp + 0x98], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101923d0]
mov eax, dword [esp + 0x64]
addsd xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101923d0]
mov eax, dword [esp + 0x68]
addsd xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101923d0]
mov eax, dword [esp + 0x6c]
addsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101923d0]
addsd xmm1, xmm0
jmp 0x100b6355
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
add edx, 8
mov dword [esp + 0x10], edx
cmp edx, esi
jb 0x100b60f2
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add eax, 8
mov edi, dword [esp + 0x14]
add edx, 8
add dword [esp + 0x18], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], eax
cmp edx, ecx
jb 0x100b60e0
xorps xmm0, xmm0
ucomisd xmm5, xmm0
lahf
test ah, 0x44
jnp 0x100b63b2
divsd xmm4, xmm5
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm4
movss dword [edi + 0xe784], xmm0
xorps xmm4, xmm4
ucomisd xmm6, xmm4
lahf
test ah, 0x44
jnp 0x100b63d2
divsd xmm3, xmm6
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm3
movss dword [edi + 0xe788], xmm0
ucomisd xmm7, xmm4
lahf
test ah, 0x44
jnp 0x100b63ef
divsd xmm2, xmm7
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm2
movss dword [edi + 0xe78c], xmm0
movsd xmm0, qword [esp + 0x98]
xorps xmm3, xmm3
movss xmm2, dword [0x101922a0]
ucomisd xmm0, xmm4
lahf
test ah, 0x44
jnp 0x100b6420
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
movss dword [edi + 0xe790], xmm0
cmp dword [edi + 0xdc], 0
je 0x100b6728
movss xmm1, dword [edi + 0xe774]
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jnp 0x100b6728
xorps xmm0, xmm0
xor eax, eax
movaps xmmword [esp + 0x50], xmm0
xor esi, esi
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x2c], eax
nop word [eax + eax]
mov edx, dword [edi + 0x65b0]
and eax, 7
add eax, eax
lea ecx, [eax + eax]
shr edx, cl
movzx ecx, word [edi + esi + 0x66e4]
and edx, 3
sub ecx, dword [edi + 0x65f8]
mov dword [esp + 0x10], edx
test ecx, ecx
jle 0x100b648d
add dword [esp + edx*4 + 0x50], ecx
inc dword [esp + edx*4 + 0x60]
lea ecx, [eax*2 + 2]
mov eax, dword [edi + 0x65b0]
shr eax, cl
movzx ecx, word [edi + esi + 0x66e6]
and eax, 3
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x18]
mov ecx, dword [edi + 0x65f8]
sub edx, ecx
mov dword [esp + 0x18], edx
test edx, edx
jle 0x100b64cd
mov edi, edx
add dword [esp + eax*4 + 0x50], edi
mov edi, dword [esp + 0x20]
movzx edx, word [edi + esi + 0x66e8]
inc dword [esp + eax*4 + 0x60]
sub edx, ecx
mov dword [esp + 0x14], edx
test edx, edx
mov edx, dword [esp + 0x10]
jle 0x100b64f3
mov edi, dword [esp + 0x14]
add dword [esp + edx*4 + 0x50], edi
mov edi, dword [esp + 0x20]
inc dword [esp + edx*4 + 0x60]
movzx edx, word [edi + esi + 0x66ea]
sub edx, ecx
mov dword [esp + 0x14], edx
test edx, edx
jle 0x100b650d
add dword [esp + eax*4 + 0x50], edx
movzx edx, word [edi + esi + 0x66ec]
inc dword [esp + eax*4 + 0x60]
sub edx, ecx
mov dword [esp + 0x14], edx
test edx, edx
mov edx, dword [esp + 0x10]
jle 0x100b6533
mov edi, dword [esp + 0x14]
add dword [esp + edx*4 + 0x50], edi
mov edi, dword [esp + 0x20]
inc dword [esp + edx*4 + 0x60]
movzx edx, word [edi + esi + 0x66ee]
sub edx, ecx
mov dword [esp + 0x14], edx
test edx, edx
jle 0x100b6553
mov edi, edx
add dword [esp + eax*4 + 0x50], edi
mov edi, dword [esp + 0x20]
movzx edx, word [edi + esi + 0x66f0]
inc dword [esp + eax*4 + 0x60]
sub edx, ecx
mov dword [esp + 0x14], edx
test edx, edx
mov edx, dword [esp + 0x10]
jle 0x100b6579
mov edi, dword [esp + 0x14]
add dword [esp + edx*4 + 0x50], edi
mov edi, dword [esp + 0x20]
inc dword [esp + edx*4 + 0x60]
movzx edx, word [edi + esi + 0x66f2]
sub edx, ecx
test edx, edx
jle 0x100b658f
add dword [esp + eax*4 + 0x50], edx
inc dword [esp + eax*4 + 0x60]
add esi, 0x10
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
cmp esi, 0x80
jb 0x100b6460
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x100b66e0
mov edx, dword [esp + 0x54]
test edx, edx
je 0x100b66e0
mov esi, dword [esp + 0x58]
test esi, esi
je 0x100b66e0
cmp dword [esp + 0x5c], 0
je 0x100b66e0
mov eax, dword [esp + 0x60]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101923d0]
mov eax, dword [esp + 0x64]
cvtpd2ps xmm1, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x101923d0]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movss dword [edi + 0xe784], xmm1
addsd xmm0, qword [eax*8 + 0x101923d0]
mov eax, dword [esp + 0x68]
cvtpd2ps xmm1, xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
addsd xmm0, qword [edx*8 + 0x101923d0]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movss dword [edi + 0xe788], xmm1
addsd xmm0, qword [eax*8 + 0x101923d0]
mov eax, dword [esp + 0x6c]
cvtpd2ps xmm1, xmm0
movd xmm0, esi
cvtdq2pd xmm0, xmm0
shr esi, 0x1f
addsd xmm0, qword [esi*8 + 0x101923d0]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movss dword [edi + 0xe78c], xmm1
addsd xmm0, qword [eax*8 + 0x101923d0]
mov eax, dword [esp + 0x5c]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101923d0]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [edi + 0xe790], xmm1
jmp 0x100b6728
ucomiss xmm1, xmm3
lahf
test ah, 0x44
jnp 0x100b670a
movss xmm0, dword [edi + 0xe77c]
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jnp 0x100b670a
movups xmm0, xmmword [edi + 0xe774]
movups xmmword [edi + 0xe784], xmm0
jmp 0x100b6728
push dword [edi + 0x6278]
push str._s:_Cannot_use_camera_p__white_balance._n
push 2
call fcn.10139778
add esp, 4
push eax
call fcn.10001240
add esp, 0xc
movss xmm0, dword [edi + 0xe790]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x100b675f
cmp dword [edi + 0x66d0], 4
jge 0x100b674f
movss xmm0, dword [edi + 0xe788]
jmp 0x100b6757
movss xmm0, dword [0x10191ea8]
movss dword [edi + 0xe790], xmm0
movss xmm0, dword [edi + 0x34]
mov ecx, dword [edi + 0x65f8]
mov edx, dword [edi + 0x65fc]
ucomiss xmm0, xmm1
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], edx
lahf
test ah, 0x44
jnp 0x100b6790
mov ecx, edi
call fcn.100b5680
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
mov eax, dword [edi + 0x65f8]
lea esi, [edi + 0xe784]
sub dword [edi + 0x65fc], eax
cmp dword [edi + 0x9c], 0
movss xmm6, dword [esi]
movss xmm3, dword [edi + 0xe788]
movss xmm4, dword [edi + 0xe78c]
movss xmm5, dword [edi + 0xe790]
cvtps2pd xmm0, xmm6
cvtps2pd xmm1, xmm3
minsd xmm0, qword [0x10192290]
cvtps2pd xmm2, xmm4
minsd xmm1, xmm0
cvtps2pd xmm0, xmm6
minsd xmm2, xmm1
cvtps2pd xmm7, xmm5
cvtps2pd xmm1, xmm3
xorps xmm3, xmm3
minsd xmm7, xmm2
maxsd xmm0, xmm3
cvtps2pd xmm2, xmm4
maxsd xmm1, xmm0
cvtps2pd xmm5, xmm5
maxsd xmm2, xmm1
maxsd xmm5, xmm2
jne 0x100b6809
movaps xmm5, xmm7
cvtpd2ps xmm3, xmm5
movss xmm2, dword [0x10192278]
divss xmm6, xmm3
movss dword [esi], xmm6
movss xmm1, dword [edi + 0xe788]
mov eax, dword [edi + 0x65fc]
divss xmm1, xmm3
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movss dword [edi + 0xe788], xmm1
addsd xmm0, qword [eax*8 + 0x101923d0]
mov eax, dword [edi + 0x65fc]
mulss xmm6, xmm2
mulss xmm1, xmm2
cvtpd2ps xmm0, xmm0
divss xmm6, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movss dword [esp + 0x98], xmm6
addsd xmm0, qword [eax*8 + 0x101923d0]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [esp + 0x9c], xmm1
movss xmm1, dword [edi + 0xe78c]
divss xmm1, xmm3
movss dword [edi + 0xe78c], xmm1
mov eax, dword [edi + 0x65fc]
mulss xmm1, xmm2
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101923d0]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [esp + 0xa0], xmm1
movss xmm1, dword [edi + 0xe790]
divss xmm1, xmm3
movss dword [edi + 0xe790], xmm1
mov eax, dword [edi + 0x65fc]
mulss xmm1, xmm2
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
cmp dword [edi + 0xbc], 0
addsd xmm0, qword [eax*8 + 0x101923d0]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [esp + 0xa4], xmm1
je 0x100b6988
push edx
push ecx
push str.Scaling_with_darkness__d__saturation__d__and_nmultipliers
push 2
call fcn.10139778
add esp, 4
push eax
call fcn.10001240
add esp, 0x10
mov edi, 4
nop dword [eax]
movss xmm0, dword [esi]
sub esp, 8
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x1018bd70
push 2
call fcn.10139778
add esp, 4
push eax
call fcn.10001240
add esp, 0x10
lea esi, [esi + 4]
sub edi, 1
jne 0x100b6940
push 2
call fcn.10139778
add esp, 4
push eax
push 0xa
call fcn.1012fec4
mov edi, dword [esp + 0x28]
add esp, 8
movzx eax, word [edi + 0x66be]
xor edx, edx
movzx ecx, word [edi + 0x66c0]
imul ecx, eax
mov dword [esp + 0x18], ecx
lea eax, [ecx*4]
mov dword [esp + 0x14], eax
test eax, eax
je 0x100b69fb
nop
mov esi, dword [edi + 0x66e0]
movzx ecx, word [esi + edx*2]
test ecx, ecx
je 0x100b69f6
sub ecx, dword [edi + 0x65f8]
mov eax, edx
and eax, 3
movd xmm0, ecx
mov ecx, 0xffff
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + eax*4 + 0x98]
cvttss2si eax, xmm0
cmp eax, ecx
cmovl ecx, eax
xor eax, eax
test ecx, ecx
cmovs ecx, eax
mov eax, dword [esp + 0x14]
mov word [esi + edx*2], cx
inc edx
cmp edx, eax
jb 0x100b69b0
movsd xmm0, qword [edi + 0x50]
lea esi, [edi + 0x50]
movsd xmm1, qword [0x10192018]
ucomisd xmm0, xmm1
mov dword [esp + 0x10], esi
lahf
test ah, 0x44
jp 0x100b6a2c
movsd xmm0, qword [edi + 0x60]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x100b6cfb
cmp dword [edi + 0x66d0], 3
jne 0x100b6cfb
cmp dword [edi + 0xbc], 0
je 0x100b6a62
push str.Correcting_chromatic_aberration..._n
push 2
call fcn.10139778
add esp, 4
push eax
call fcn.10001240
movsd xmm1, qword [0x10192018]
add esp, 8
xor ecx, ecx
mov dword [esp + 0x1c], ecx
nop dword [eax + eax]
movsd xmm0, qword [esi]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x100b6ce4
mov eax, dword [esp + 0x18]
add eax, eax
push eax
call fcn.1012f850
mov edx, eax
add esp, 4
mov dword [esp + 0x2c], edx
test edx, edx
je 0x100b6d0f
xor ecx, ecx
cmp dword [esp + 0x18], ecx
jbe 0x100b6acd
mov esi, dword [esp + 0x1c]
add esi, esi
nop dword [eax]
mov eax, dword [edi + 0x66e0]
lea esi, [esi + 8]
mov ax, word [esi + eax - 8]
mov word [edx + ecx*2], ax
inc ecx
cmp ecx, dword [esp + 0x18]
jb 0x100b6ab0
mov esi, dword [esp + 0x10]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x24], ecx
cmp ax, word [edi + 0x66be]
jae 0x100b6ccf
movzx esi, word [edi + 0x66be]
mov eax, ecx
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movd xmm1, esi
addsd xmm0, qword [eax*8 + 0x101923d0]
mov eax, dword [esp + 0x10]
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [0x10191fb0]
subsd xmm0, xmm1
mulsd xmm0, qword [eax]
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x30], xmm0
call fcn.1012b970
lea ecx, [esi - 2]
mov dword [esp + 0x34], eax
cmp eax, ecx
jg 0x100b6caf
movss xmm1, dword [esp + 0x30]
mov ecx, eax
movd xmm0, eax
xor eax, eax
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x101923d0]
xor ecx, ecx
mov dword [esp + 0x28], ecx
cvtpd2ps xmm0, xmm0
subss xmm1, xmm0
movss dword [esp + 0x30], xmm1
cmp ax, word [edi + 0x66c0]
jae 0x100b6caf
nop dword [eax]
movzx esi, word [edi + 0x66c0]
mov eax, ecx
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movd xmm1, esi
addsd xmm0, qword [eax*8 + 0x101923d0]
mov eax, dword [esp + 0x10]
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [0x10191fb0]
subsd xmm0, xmm1
mulsd xmm0, qword [eax]
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x14], xmm0
call fcn.1012b970
mov edx, eax
lea ecx, [esi - 2]
cmp edx, ecx
jg 0x100b6c97
movss xmm4, dword [esp + 0x14]
mov eax, esi
imul eax, dword [esp + 0x34]
mov ecx, edx
movss xmm3, dword [0x10191ea8]
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
add eax, edx
addsd xmm0, qword [ecx*8 + 0x101923d0]
mov ecx, dword [esp + 0x2c]
cvtpd2ps xmm0, xmm0
lea ecx, [ecx + eax*2]
movzx eax, word [ecx + 2]
movd xmm2, eax
movzx eax, word [ecx]
subss xmm4, xmm0
cvtdq2ps xmm2, xmm2
movd xmm0, eax
subss xmm3, xmm4
movzx eax, word [ecx + esi*2 + 2]
cvtdq2ps xmm0, xmm0
mulss xmm2, xmm4
mulss xmm0, xmm3
movd xmm1, eax
movzx eax, word [ecx + esi*2]
addss xmm2, xmm0
imul esi, dword [esp + 0x24]
movss xmm0, dword [0x10191ea8]
subss xmm0, dword [esp + 0x30]
cvtdq2ps xmm1, xmm1
add esi, dword [esp + 0x28]
mulss xmm2, xmm0
movd xmm0, eax
mov eax, dword [esp + 0x1c]
cvtdq2ps xmm0, xmm0
lea ecx, [eax + esi*4]
mov eax, dword [edi + 0x66e0]
mulss xmm1, xmm4
mulss xmm0, xmm3
addss xmm1, xmm0
mulss xmm1, dword [esp + 0x30]
addss xmm2, xmm1
cvttss2si edx, xmm2
mov word [eax + ecx*2], dx
mov ecx, dword [esp + 0x28]
movzx eax, word [edi + 0x66c0]
inc ecx
mov dword [esp + 0x28], ecx
cmp ecx, eax
jb 0x100b6b80
mov ecx, dword [esp + 0x24]
movzx eax, word [edi + 0x66be]
inc ecx
mov dword [esp + 0x24], ecx
cmp ecx, eax
jb 0x100b6ae2
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
push edx
call fcn.1012f84b
movsd xmm1, qword [0x10192018]
add esp, 4
mov ecx, dword [esp + 0x1c]
add ecx, 2
add esi, 0x10
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], esi
cmp ecx, 4
jb 0x100b6a70
mov ecx, dword [esp + 0xac]
pop edi
pop esi
xor ecx, esp
call fcn.1012b4a2
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x2e844]
push str.scale_colors__
push dword [edi + 0x6278]
push str._s:_Out_of_memory_in__s_n
test eax, eax
je 0x100b6d31
push eax
call fcn.10004160
jmp 0x100b6d41
push 2
call fcn.10139778
add esp, 4
push eax
call fcn.10001240
add esp, 0x10
lea eax, [edi + 0x2e804]
push 1
push eax
call fcn.1012e0aa
int3