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

Disassembly:
push rbp
push rbx
push rdi
push r12
lea rbp, [rsp - 0x308]
sub rsp, 0x408
movaps xmmword [rsp + 0x390], xmm12
mov rax, qword [0x1402a83b0]
xor rax, rsp
mov qword [rbp + 0x250], rax
xor eax, eax
xor r12d, r12d
xorps xmm12, xmm12
mov rdi, rcx
mov qword [rbp - 0x78], rcx
mov dword [rsp + 0x38], r12d
movss dword [rsp + 0x30], xmm12
mov qword [rbp + 0x40], rax
mov qword [rbp + 0x48], rax
cmp dword [rcx + 0x24668], eax
je 0x1400f7ef0
call fcn.1401be514
lea rdx, str.Foveon_interpolation..._n
lea rcx, [rax + 0x60]
call fcn.1401be844
mov rcx, rdi
call fcn.1400faa40
lea r9, str.DarkShieldColRange
lea rdx, [rbp - 0x18]
mov r8d, 4
mov rcx, rdi
call fcn.1400f7ce0
lea r9, str.PostPolyMatrix
lea rdx, [rbp + 0x150]
mov r8d, 0x1b
mov rcx, rdi
call fcn.1400f7ce0
lea r9, str.SaturationLevel
lea rdx, [rbp + 0x78]
mov r8d, 3
mov rcx, rdi
call fcn.1400f7ce0
lea r9, str.KeepImageArea
lea rdx, [rbp - 0x58]
mov r8d, 4
mov rcx, rdi
call fcn.1400f7ce0
lea r9, str.ActiveImageArea
lea rdx, [rbp - 0x68]
mov r8d, 4
mov rcx, rdi
call fcn.1400f7ce0
lea r9, str.ChromaDQ
lea rdx, [rbp - 8]
mov r8d, 3
mov rcx, rdi
call fcn.1400f7ce0
lea rbx, str.ColorDQ
lea rdx, str.IncludeBlocks
mov r8, rbx
mov rcx, rdi
call fcn.1400f7880
lea r9, str.ColorDQCamRGB
lea rdx, [rbp + 0x68]
test rax, rax
mov r8d, 3
mov rcx, rdi
cmovne r9, rbx
call fcn.1400f7ce0
lea r8, str.ColumnFilter
lea rdx, str.IncludeBlocks
mov rcx, rdi
call fcn.1400f7880
test rax, rax
je 0x1400f7fff
lea r9, str.ColumnFilter
lea rdx, [rsp + 0x30]
mov r8d, 1
mov rcx, rdi
call fcn.1400f7ce0
xor eax, eax
mov qword [rsp + 0x438], rsi
mov qword [rsp + 0x440], r13
lea r8, str.DarkDrift
lea rdx, str.IncludeBlocks
mov rcx, rdi
mov qword [rsp + 0x448], r14
mov qword [rbp + 0xc0], rax
mov qword [rbp + 0xc8], rax
mov qword [rsp + 0x400], r15
mov qword [rbp + 0xd0], rax
mov qword [rbp + 0xd8], rax
mov qword [rbp + 0xe0], rax
mov qword [rbp + 0xe8], rax
mov qword [rbp + 0xf0], rax
mov qword [rbp + 0xf8], rax
mov qword [rbp + 0x100], rax
call fcn.1400f7880
test rax, rax
je 0x1400f809f
lea r9, str.DarkDrift
lea rdx, [rbp + 0xd8]
mov r8d, 0xc
mov rcx, rdi
call fcn.1400f7ce0
test eax, eax
jne 0x1400f81e4
mov r13d, r12d
lea rbx, [rbp + 0xe4]
lea r12, str.DarkShieldBottom
lea r9, str.DarkShieldTop
test r13d, r13d
lea rdx, [rbp + 0x40]
mov r8d, 4
mov rcx, rdi
cmovne r9, r12
call fcn.1400f7ce0
movsxd r14, dword [rbp + 0x44]
mov esi, dword [rbp + 0x4c]
mov r8, qword [rbp + 0x48]
mov r10, qword [rbp + 0x40]
cmp r14d, esi
jg 0x1400f8190
mov eax, esi
movsxd r15, r10d
mov r9, r14
sub eax, r14d
inc eax
movsxd r11, eax
nop dword [rax + rax]
cmp r10d, r8d
jg 0x1400f8184
movzx ecx, word [rdi + 0x44f6]
mov rdx, qword [rdi + 0x4510]
movss xmm2, dword [rbx - 8]
movss xmm3, dword [rbx]
movss xmm4, dword [rbx + 8]
add rdx, 4
mov eax, r8d
imul rcx, r9
add rcx, r15
sub eax, r10d
inc eax
lea rdx, [rdx + rcx*8]
movsxd rcx, eax
nop
movsx eax, word [rdx - 4]
add rdx, 8
movd xmm0, eax
movsx eax, word [rdx - 0xa]
movd xmm1, eax
movsx eax, word [rdx - 8]
cvtdq2ps xmm0, xmm0
addss xmm2, xmm0
movd xmm0, eax
cvtdq2ps xmm1, xmm1
addss xmm3, xmm1
cvtdq2ps xmm0, xmm0
addss xmm4, xmm0
dec rcx
jne 0x1400f8140
movss dword [rbx - 8], xmm2
movss dword [rbx], xmm3
movss dword [rbx + 8], xmm4
inc r9
dec r11
jne 0x1400f8100
movss xmm0, dword [rbx - 8]
movss xmm1, dword [rbx]
sub r8d, r10d
sub esi, r14d
inc r8d
inc r13d
inc esi
add rbx, 0x18
imul r8d, esi
movd xmm2, r8d
cvtdq2ps xmm2, xmm2
divss xmm0, xmm2
divss xmm1, xmm2
movss dword [rbx - 0x20], xmm0
movss xmm0, dword [rbx - 0x10]
movss dword [rbx - 0x18], xmm1
divss xmm0, xmm2
movss dword [rbx - 0x10], xmm0
cmp r13d, 2
jl 0x1400f80b0
xor r12d, r12d
lea r8, [rdi + 0x29d]
lea rdx, str.WhiteBalanceIlluminants
mov rcx, rdi
call fcn.1400f7880
test rax, rax
jne 0x1400f8224
call fcn.1401be514
mov r8, qword [rdi + 8]
lea r9, [rdi + 0x29d]
lea rcx, [rax + 0x60]
lea rdx, str._s:_Invalid_white_balance___s__n
call fcn.1401be844
jmp 0x1400fa9f9
movaps xmmword [rsp + 0x3f0], xmm6
movaps xmmword [rsp + 0x3e0], xmm7
movaps xmmword [rsp + 0x3d0], xmm8
lea rdx, [rbp + 0x18]
mov r9, rax
mov r8d, 9
mov rcx, rdi
movaps xmmword [rsp + 0x3c0], xmm9
movaps xmmword [rsp + 0x3b0], xmm10
movaps xmmword [rsp + 0x3a0], xmm11
movaps xmmword [rsp + 0x380], xmm13
movaps xmmword [rsp + 0x370], xmm14
movaps xmmword [rsp + 0x360], xmm15
call fcn.1400f7ce0
lea r8, [rdi + 0x29d]
lea rdx, str.WhiteBalanceCorrections
mov rcx, rdi
call fcn.1400f7880
lea rdx, [rbp + 0x40]
mov r8d, 9
mov r9, rax
mov rcx, rdi
call fcn.1400f7ce0
xor eax, eax
mov ecx, 3
movss xmm7, dword [rbp + 0x38]
movss xmm8, dword [rbp + 0x34]
movss xmm9, dword [rbp + 0x30]
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rax
movss xmm10, dword [rbp + 0x2c]
movss xmm11, dword [rbp + 0x28]
movss xmm12, dword [rbp + 0x24]
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x20], eax
mov rax, r12
movss xmm13, dword [rbp + 0x20]
movss xmm14, dword [rbp + 0x1c]
movss xmm15, dword [rbp + 0x18]
nop word [rax + rax]
movss xmm6, dword [rbp + rax + 0x40]
movss xmm4, dword [rbp + rax + 0x44]
movss xmm5, dword [rbp + rax + 0x48]
add rax, 0xc
movaps xmm2, xmm6
movaps xmm3, xmm6
movaps xmm0, xmm4
mulss xmm6, xmm13
mulss xmm2, xmm15
mulss xmm0, xmm12
mulss xmm3, xmm14
addss xmm6, dword [rbp + rax - 0x44]
movaps xmm1, xmm5
addss xmm2, dword [rbp + rax - 0x4c]
addss xmm3, dword [rbp + rax - 0x48]
mulss xmm1, xmm9
addss xmm2, xmm0
movaps xmm0, xmm4
mulss xmm4, xmm10
addss xmm2, xmm1
mulss xmm0, xmm11
addss xmm6, xmm4
movaps xmm1, xmm5
mulss xmm5, xmm7
mulss xmm1, xmm8
addss xmm3, xmm0
addss xmm6, xmm5
movss dword [rbp + rax - 0x4c], xmm2
addss xmm3, xmm1
movss dword [rbp + rax - 0x44], xmm6
movss dword [rbp + rax - 0x48], xmm3
dec rcx
jne 0x1400f8310
mov r10d, 2
lea r9, [rbp + 0x24]
lea r11d, [rcx + 3]
nop word [rax + rax]
mov ecx, r10d
mov eax, 0x55555556
add r9, 4
imul r10d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
lea ecx, [r10 - 1]
inc r10d
lea r8, [rax + rax*2]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
movss xmm7, dword [rbp + r8*4 - 0x38]
movss xmm5, dword [rbp + r8*4 - 0x3c]
movss xmm2, dword [rbp + r8*4 - 0x40]
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
lea rcx, [rax + rax*2]
movss xmm6, dword [rbp + rcx*4 - 0x3c]
movss xmm4, dword [rbp + rcx*4 - 0x38]
movss xmm3, dword [rbp + rcx*4 - 0x40]
movaps xmm0, xmm4
movaps xmm1, xmm6
mulss xmm4, xmm2
mulss xmm0, xmm5
mulss xmm1, xmm7
mulss xmm6, xmm2
subss xmm1, xmm0
movaps xmm0, xmm3
movss dword [r9 - 0x10], xmm1
mulss xmm0, xmm7
mulss xmm3, xmm5
subss xmm4, xmm0
subss xmm3, xmm6
movss dword [r9 - 4], xmm4
movss dword [r9 + 8], xmm3
dec r11
jne 0x1400f83c0
movsd xmm5, qword [0x140231570]
movsd xmm4, qword [0x140231598]
movsd xmm6, qword [0x140231568]
lea r8, [rdi + 0x29d]
lea rdx, str._sRGBNeutral
lea rcx, [rbp + 0x1d0]
movss xmm2, dword [rbp + 0x18]
movss xmm0, dword [rbp + 0x1c]
movss xmm1, dword [rbp + 0x20]
movss xmm3, dword [rbp + 0x30]
cvtps2pd xmm2, xmm2
cvtps2pd xmm0, xmm0
mulsd xmm2, xmm6
mulsd xmm0, xmm5
addsd xmm2, xmm0
cvtps2pd xmm1, xmm1
cvtps2pd xmm3, xmm3
mulsd xmm1, xmm4
mulsd xmm3, xmm6
addsd xmm2, xmm1
movss xmm1, dword [rbp + 0x2c]
cvtpd2ps xmm0, xmm2
movss xmm2, dword [rbp + 0x24]
cvtps2pd xmm1, xmm1
mulsd xmm1, xmm4
movss dword [rbp + 8], xmm0
movss xmm0, dword [rbp + 0x28]
cvtps2pd xmm2, xmm2
mulsd xmm2, xmm6
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm5
addsd xmm2, xmm0
movss xmm0, dword [rbp + 0x34]
addsd xmm2, xmm1
movss xmm1, dword [rbp + 0x38]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm5
addsd xmm3, xmm0
cvtps2pd xmm1, xmm1
cvtpd2ps xmm14, xmm2
mulsd xmm1, xmm4
addsd xmm3, xmm1
movss dword [rbp + 0xc], xmm14
cvtpd2ps xmm15, xmm3
movss dword [rbp + 0x10], xmm15
call fcn.1401bea4c
lea r8, [rbp + 0x1d0]
lea rdx, str.IncludeBlocks
mov rcx, rdi
call fcn.1400f7880
test rax, rax
je 0x1400f8587
lea r9, [rbp + 0x1d0]
lea rdx, [rbp + 8]
mov r8d, 3
mov rcx, rdi
call fcn.1400f7ce0
movss xmm14, dword [rbp + 0xc]
movss xmm15, dword [rbp + 0x10]
movss xmm3, dword [rbp + 8]
xorps xmm1, xmm1
comiss xmm3, xmm1
movaps xmm0, xmm1
jbe 0x1400f859a
movaps xmm0, xmm3
comiss xmm14, xmm0
jbe 0x1400f85a4
movaps xmm0, xmm14
comiss xmm15, xmm0
jbe 0x1400f85ae
movaps xmm0, xmm15
movss xmm7, dword [rbp - 0x20]
movss xmm8, dword [rbp - 0x24]
movss xmm9, dword [rbp - 0x28]
xor eax, eax
divss xmm14, xmm0
divss xmm15, xmm0
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x28], rax
mov qword [rbp + 0x30], rax
mov dword [rbp + 0x38], eax
lea rcx, [rdi + 0x246f0]
movss xmm10, dword [rbp - 0x2c]
movss xmm11, dword [rbp - 0x30]
movss xmm12, dword [rbp - 0x34]
lea rax, [rbp + 0x1c]
mov edx, 3
movss xmm13, dword [rbp - 0x38]
movss dword [rbp + 0xc], xmm14
movss xmm14, dword [rbp - 0x3c]
divss xmm3, xmm0
movss dword [rbp + 0x10], xmm15
movss xmm15, dword [rbp - 0x40]
movss dword [rbp + 8], xmm3
nop word [rax + rax]
movss xmm6, dword [rcx - 4]
movss xmm4, dword [rcx]
movss xmm5, dword [rcx + 4]
add rax, 0xc
add rcx, 0x10
movaps xmm2, xmm6
movaps xmm0, xmm4
movaps xmm1, xmm5
mulss xmm2, xmm15
mulss xmm0, xmm12
mulss xmm1, xmm9
mulss xmm0, xmm3
mulss xmm2, xmm3
mulss xmm1, xmm3
movaps xmm3, xmm6
addss xmm2, dword [rax - 0x10]
addss xmm2, xmm0
mulss xmm3, xmm14
mulss xmm6, xmm13
movaps xmm0, xmm4
addss xmm2, xmm1
movaps xmm1, xmm5
movss dword [rax - 0x10], xmm2
movss xmm2, dword [rbp + 0xc]
mulss xmm0, xmm11
mulss xmm4, xmm10
mulss xmm1, xmm8
mulss xmm3, xmm2
mulss xmm0, xmm2
mulss xmm5, xmm7
addss xmm3, dword [rax - 0xc]
addss xmm3, xmm0
movss xmm0, dword [rbp + 0x10]
mulss xmm1, xmm2
mulss xmm6, xmm0
mulss xmm4, xmm0
mulss xmm5, xmm0
addss xmm3, xmm1
addss xmm6, dword [rax - 8]
movss dword [rax - 0xc], xmm3
movss xmm3, dword [rbp + 8]
addss xmm6, xmm4
addss xmm6, xmm5
movss dword [rax - 8], xmm6
dec rdx
jne 0x1400f8630
movss xmm0, dword [rbp + 0x18]
movss xmm1, dword [rbp + 0x28]
lea rcx, [rbp + 0x40]
mov rax, r12
mov edx, 3
addss xmm0, dword [rbp + 0x1c]
addss xmm1, dword [rbp + 0x24]
addss xmm0, dword [rbp + 0x20]
addss xmm1, dword [rbp + 0x2c]
cvtps2pd xmm9, xmm0
movss xmm0, dword [rbp + 0x34]
cvtps2pd xmm2, xmm1
addss xmm0, dword [rbp + 0x30]
movsd qword [rbp + 0x40], xmm9
movsd qword [rbp + 0x48], xmm2
mulsd xmm9, qword [0x1401f6cd0]
mulsd xmm2, qword [0x140231648]
addss xmm0, dword [rbp + 0x38]
addsd xmm9, xmm2
cvtps2pd xmm1, xmm0
movsd qword [rbp + 0x50], xmm1
mulsd xmm1, qword [0x1401f6cb8]
addsd xmm9, xmm1
divsd xmm9, qword [0x140231668]
nop word [rax + rax]
movsd xmm3, qword [rcx]
movss xmm0, dword [rbp + rax + 0x18]
movss xmm1, dword [rbp + rax + 0x1c]
lea rcx, [rcx + 8]
movss xmm2, dword [rbp + rax + 0x20]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
lea rax, [rax + 0xc]
mulsd xmm0, xmm9
mulsd xmm1, xmm9
cvtps2pd xmm2, xmm2
divsd xmm0, xmm3
divsd xmm1, xmm3
cvtpd2ps xmm0, xmm0
movss dword [rbp + rax - 0x4c], xmm0
cvtpd2ps xmm0, xmm1
mulsd xmm2, xmm9
movss dword [rbp + rax - 0x48], xmm0
divsd xmm2, xmm3
cvtpd2ps xmm0, xmm2
movss dword [rbp + rax - 0x44], xmm0
dec rdx
jne 0x1400f8780
movss xmm8, dword [rbp - 0x20]
movss xmm10, dword [rbp - 0x24]
movss xmm11, dword [rbp - 0x28]
xor eax, eax
or r8d, 0xffffffff
mov edx, r12d
lea rcx, [rbp + 0x1c]
mov dword [rsp + 0x3c], r8d
lea r9d, [rax + 0x20]
movss xmm12, dword [rbp - 0x2c]
movss xmm13, dword [rbp - 0x30]
movss xmm14, dword [rbp - 0x34]
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x28], rax
movss xmm15, dword [rbp - 0x38]
movss xmm7, dword [0x1402316e0]
mov qword [rbp + 0x30], rax
mov dword [rbp + 0x38], eax
test edx, edx
mov eax, r8d
cmove eax, r9d
cmp edx, 1
movd xmm6, eax
mov eax, r8d
cmove eax, r9d
cmp edx, 2
movd xmm4, eax
cvtdq2ps xmm6, xmm6
mov eax, r8d
cmove eax, r9d
inc edx
add rcx, 0xc
movaps xmm2, xmm6
movaps xmm3, xmm6
movd xmm5, eax
cvtdq2ps xmm4, xmm4
mulss xmm6, xmm15
mulss xmm2, dword [rbp - 0x40]
mulss xmm3, dword [rbp - 0x3c]
divss xmm6, xmm7
cvtdq2ps xmm5, xmm5
movaps xmm0, xmm4
movaps xmm1, xmm5
addss xmm6, dword [rcx - 8]
mulss xmm0, xmm14
mulss xmm1, xmm11
divss xmm2, xmm7
addss xmm2, dword [rcx - 0x10]
divss xmm0, xmm7
divss xmm1, xmm7
divss xmm3, xmm7
addss xmm3, dword [rcx - 0xc]
addss xmm2, xmm0
movaps xmm0, xmm4
addss xmm2, xmm1
movaps xmm1, xmm5
movss dword [rcx - 0x10], xmm2
mulss xmm0, xmm13
mulss xmm4, xmm12
mulss xmm1, xmm10
divss xmm0, xmm7
divss xmm4, xmm7
mulss xmm5, xmm8
addss xmm3, xmm0
addss xmm6, xmm4
divss xmm1, xmm7
divss xmm5, xmm7
addss xmm3, xmm1
addss xmm6, xmm5
movss dword [rcx - 0xc], xmm3
movss dword [rcx - 8], xmm6
cmp edx, 3
jl 0x1400f8840
movss xmm11, dword [rsp + 0x30]
lea r9, [rbp + 8]
lea r8, [rbp + 0x68]
lea rdx, [rbp + 0x110]
mov rcx, rdi
movss dword [rsp + 0x20], xmm11
call fcn.1400fae90
lea r9, [rbp + 8]
lea r8, [rbp - 8]
movss xmm10, dword [0x140231670]
movss xmm7, dword [rbp - 8]
movss xmm6, dword [rbp - 4]
divss xmm7, xmm10
divss xmm6, xmm10
lea rdx, [rbp + 0x128]
movss xmm8, dword [rbp]
mov rcx, rdi
movss dword [rsp + 0x20], xmm11
movss dword [rbp - 8], xmm7
movss dword [rbp - 4], xmm6
divss xmm8, xmm10
movss dword [rbp], xmm8
call fcn.1400fae90
movss xmm12, dword [rbp + 8]
mov rcx, rdi
movss xmm14, dword [rbp + 0xc]
movss xmm15, dword [rbp + 0x10]
divss xmm7, xmm12
divss xmm6, xmm14
divss xmm8, xmm15
cvtps2pd xmm7, xmm7
addsd xmm7, xmm9
cvtps2pd xmm0, xmm6
cvtps2pd xmm6, xmm11
addsd xmm7, xmm0
cvtps2pd xmm0, xmm8
movaps xmm3, xmm6
addsd xmm7, xmm0
movaps xmm2, xmm7
movaps xmm1, xmm7
call fcn.1400fad00
mulsd xmm7, qword [0x1401f6ca8]
movaps xmm3, xmm6
mov rcx, rdi
mov qword [rbp + 0x140], rax
movaps xmm2, xmm7
movaps xmm1, xmm7
call fcn.1400fad00
lea r8, str.SpatialGain
lea rdx, [rbp + 0x68]
mov rcx, rdi
mov qword [rbp + 0x148], rax
call fcn.1400f7660
mov qword [rsp + 0x48], rax
test rax, rax
je 0x1400fa9aa
mov esi, dword [rbp + 0x6c]
mov edx, 0xc
mov ecx, esi
call fcn.1401be1f8
movzx ebx, word [rdi + 0x44f6]
lea ecx, [rsi - 1]
mov qword [rbp - 0x80], rax
lea eax, [rsi - 2]
movzx esi, word [rdi + 0x44f4]
xor edx, edx
add eax, ebx
div ecx
mov edx, 0xc
mov ecx, esi
mov dword [rsp + 0x34], eax
call fcn.1401be1f8
mov edx, r12d
movsd xmm13, qword [0x140269a98]
mov dword [rsp + 0x30], edx
mov r14, rax
mov qword [rsp + 0x68], rax
test esi, esi
jle 0x1400f8ba3
mov r12, qword [rdi + 0x4510]
movss xmm7, dword [0x140231518]
movd xmm8, esi
mov r15, rax
cvtdq2pd xmm8, xmm8
subsd xmm8, xmm13
nop dword [rax + rax]
movd xmm3, edx
lea rax, [rbp + 0xf0]
mov ecx, 6
cvtdq2pd xmm3, xmm3
divsd xmm3, xmm8
nop dword [rax]
movss xmm0, dword [rax]
movss xmm1, dword [rax - 0x18]
add rax, 4
subss xmm0, xmm1
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm0
mulsd xmm2, xmm3
addsd xmm2, xmm1
cvtpd2ps xmm0, xmm2
movss dword [rax - 0x34], xmm0
dec rcx
jne 0x1400f8ad0
movzx eax, bx
lea rsi, [rbp + 0xc4]
lea r13d, [rcx + 3]
imul eax, edx
movsxd r14, eax
shl r14, 3
nop word [rax + rax]
lea rbx, [r14 + r12]
lea r8, [rbp - 0x10]
movaps xmm3, xmm11
mov rdx, rbx
mov rcx, rdi
call fcn.1400f7480
lea r8, [rbp - 0x18]
mov rdx, rbx
movaps xmm3, xmm11
mov rcx, rdi
movaps xmm6, xmm0
mulss xmm6, xmm10
call fcn.1400f7480
add r15, 4
add r14, 2
add rsi, 8
addss xmm6, xmm0
subss xmm6, dword [rsi - 0xc]
mulss xmm6, xmm7
subss xmm6, dword [rsi - 8]
movss dword [r15 - 4], xmm6
dec r13
jne 0x1400f8b20
mov edx, dword [rsp + 0x30]
movzx esi, word [rdi + 0x44f4]
movzx ebx, word [rdi + 0x44f6]
inc edx
mov dword [rsp + 0x30], edx
cmp edx, esi
jl 0x1400f8ab0
mov r14, qword [rsp + 0x68]
xor r12d, r12d
movups xmm0, xmmword [r14 + 0x60]
movups xmm1, xmmword [r14 + 0x70]
lea rax, [rsi + rsi*2]
lea rcx, [rsi + rsi*2]
mov ebx, 1
movups xmmword [r14], xmm0
movups xmm0, xmmword [r14 + 0x80]
movups xmmword [r14 + 0x10], xmm1
movups xmm1, xmmword [r14 + 0x90]
movups xmmword [r14 + 0x20], xmm0
movups xmm0, xmmword [r14 + 0xa0]
movups xmmword [r14 + 0x30], xmm1
movups xmm1, xmmword [r14 + 0xb0]
movups xmmword [r14 + 0x40], xmm0
movups xmmword [r14 + 0x50], xmm1
movups xmm0, xmmword [r14 + rax*4 - 0x108]
movups xmmword [r14 + rcx*4 - 0x84], xmm0
movups xmm1, xmmword [r14 + rax*4 - 0xf8]
movups xmmword [r14 + rcx*4 - 0x74], xmm1
movups xmm0, xmmword [r14 + rax*4 - 0xe8]
movups xmmword [r14 + rcx*4 - 0x64], xmm0
movups xmm1, xmmword [r14 + rax*4 - 0xd8]
movups xmmword [r14 + rcx*4 - 0x54], xmm1
movups xmm0, xmmword [r14 + rax*4 - 0xc8]
movups xmmword [r14 + rcx*4 - 0x44], xmm0
movups xmm1, xmmword [r14 + rax*4 - 0xb8]
movups xmmword [r14 + rcx*4 - 0x34], xmm1
movups xmm0, xmmword [r14 + rax*4 - 0xa8]
movups xmmword [r14 + rcx*4 - 0x24], xmm0
movups xmm1, xmmword [r14 + rax*4 - 0x98]
movups xmmword [r14 + rcx*4 - 0x14], xmm1
mov eax, dword [r14 + rax*4 - 0x88]
mov dword [r14 + rcx*4 - 4], eax
mov eax, dword [r14 + 0x20]
movups xmm0, xmmword [r14]
mov dword [rbp - 0x20], eax
lea eax, [rsi - 1]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm1
cmp eax, ebx
jle 0x1400f8d9d
nop dword [rax]
nop word [rax + rax]
movss xmm1, dword [rbp - 0x34]
movss xmm0, dword [rbp - 0x40]
movss xmm2, dword [rbp - 0x28]
comiss xmm1, xmm0
jbe 0x1400f8cce
comiss xmm1, xmm2
jbe 0x1400f8ce8
comiss xmm0, xmm2
jmp 0x1400f8cd6
comiss xmm2, xmm1
jbe 0x1400f8ce8
comiss xmm2, xmm0
ja 0x1400f8cdb
movaps xmm0, xmm2
movsxd rax, ebx
lea rcx, [rax + rax*2]
movss dword [r14 + rcx*4], xmm0
movss xmm1, dword [rbp - 0x30]
movss xmm0, dword [rbp - 0x3c]
movss xmm2, dword [rbp - 0x24]
comiss xmm1, xmm0
jbe 0x1400f8d06
comiss xmm1, xmm2
jbe 0x1400f8d21
comiss xmm0, xmm2
jmp 0x1400f8d0e
comiss xmm2, xmm1
jbe 0x1400f8d21
comiss xmm2, xmm0
ja 0x1400f8d13
movaps xmm0, xmm2
movsxd rax, ebx
lea rcx, [rax + rax*2]
movss dword [r14 + rcx*4 + 4], xmm0
movss xmm1, dword [rbp - 0x2c]
movss xmm0, dword [rbp - 0x38]
movss xmm2, dword [rbp - 0x20]
comiss xmm1, xmm0
jbe 0x1400f8d3f
comiss xmm1, xmm2
jbe 0x1400f8d5a
comiss xmm0, xmm2
jmp 0x1400f8d47
comiss xmm2, xmm1
jbe 0x1400f8d5a
comiss xmm2, xmm0
ja 0x1400f8d4c
movaps xmm0, xmm2
movsxd rax, ebx
lea rcx, [rax + rax*2]
movss dword [r14 + rcx*4 + 8], xmm0
lea rdx, [rbp - 0x34]
lea rcx, [rbp - 0x40]
mov r8d, 0x18
call fcn.1401bd6e0
movsxd rax, ebx
inc ebx
inc rax
lea rcx, [rax + rax*2]
mov eax, dword [r14 + rcx*4 + 8]
movsd xmm0, qword [r14 + rcx*4]
mov dword [rbp - 0x20], eax
movzx eax, word [rdi + 0x44f4]
movsd qword [rbp - 0x28], xmm0
dec eax
cmp ebx, eax
jl 0x1400f8cb0
movss xmm8, dword [0x140269a80]
movss xmm1, dword [rbp - 0x2c]
movss xmm0, dword [rbp - 0x34]
movsxd rax, ebx
lea rbx, [r14 + 0x10]
lea rsi, [r14 + 8]
lea rcx, [rax + rax*2]
addss xmm0, dword [rbp - 0x40]
addss xmm1, dword [rbp - 0x38]
mulss xmm0, xmm8
mulss xmm1, xmm8
movss dword [r14 + rcx*4], xmm0
movss xmm0, dword [rbp - 0x30]
movss dword [r14 + rcx*4 + 8], xmm1
addss xmm0, dword [rbp - 0x3c]
mulss xmm0, xmm8
movss dword [r14 + rcx*4 + 4], xmm0
movss xmm0, dword [r14 + 0x24]
movss xmm1, dword [r14 + 0x28]
addss xmm0, dword [r14 + 0xc]
addss xmm1, dword [rbx]
mulss xmm0, xmm8
mulss xmm1, xmm8
movss dword [r14], xmm0
movss xmm0, dword [r14 + 0x2c]
movss dword [r14 + 4], xmm1
addss xmm0, dword [r14 + 0x14]
mulss xmm0, xmm8
movss dword [rsi], xmm0
movsd xmm0, qword [0x140231728]
call fcn.1401bf580
mov eax, dword [r14 + 8]
movzx r13d, word [rdi + 0x44f4]
movaps xmm1, xmm13
xorps xmm3, xmm3
subsd xmm1, xmm0
movsd xmm0, qword [r14]
mov dword [rbp], eax
movss xmm7, dword [rbp]
movsd qword [rbp - 8], xmm0
movss xmm6, dword [rbp - 4]
movss xmm5, dword [rbp - 8]
cvtsd2ss xmm3, xmm1
cmp r13d, 1
jle 0x1400f8eec
lea ecx, [r13 - 1]
nop dword [rax]
nop dword [rax + rax]
movss xmm1, dword [rbx - 4]
movss xmm2, dword [rbx]
add rbx, 0xc
subss xmm1, dword [rbx - 0x1c]
subss xmm2, dword [rbx - 0x18]
mulss xmm1, xmm3
mulss xmm2, xmm3
addss xmm1, dword [rbx - 0x1c]
addss xmm2, dword [rbx - 0x18]
movss dword [rbx - 0x10], xmm1
addss xmm5, xmm1
movss xmm1, dword [rbx - 8]
subss xmm1, dword [rbx - 0x14]
movss dword [rbx - 0xc], xmm2
addss xmm6, xmm2
mulss xmm1, xmm3
addss xmm1, dword [rbx - 0x14]
movss dword [rbx - 8], xmm1
addss xmm7, xmm1
dec rcx
jne 0x1400f8e90
lea rcx, [r13*2]
mov edx, r13d
add rcx, r13
movsd xmm0, qword [r14 + rcx*4 - 0xc]
mov eax, dword [r14 + rcx*4 - 4]
movsd qword [rbp - 0x40], xmm0
mov dword [rbp - 0x38], eax
movd xmm0, r13d
cvtdq2ps xmm0, xmm0
divss xmm5, xmm0
divss xmm6, xmm0
divss xmm7, xmm0
test r13d, r13d
je 0x1400f8fbb
movss xmm1, dword [rbp - 0x38]
movss xmm2, dword [rbp - 0x3c]
movss xmm4, dword [rbp - 0x40]
nop word [rax + rax]
dec edx
movsxd rax, edx
lea rcx, [rax + rax*2]
movss xmm0, dword [r14 + rcx*4]
subss xmm0, xmm5
subss xmm0, xmm4
mulss xmm0, xmm3
addss xmm0, xmm4
movaps xmm4, xmm0
movss xmm0, dword [r14 + rcx*4 + 4]
subss xmm0, xmm6
movss dword [r14 + rcx*4], xmm4
movss dword [rbp - 0x40], xmm4
subss xmm0, xmm2
mulss xmm0, xmm3
addss xmm0, xmm2
movaps xmm2, xmm0
movss xmm0, dword [r14 + rcx*4 + 8]
subss xmm0, xmm7
movss dword [r14 + rcx*4 + 4], xmm2
movss dword [rbp - 0x3c], xmm2
subss xmm0, xmm1
mulss xmm0, xmm3
addss xmm0, xmm1
movaps xmm1, xmm0
movss dword [r14 + rcx*4 + 8], xmm1
movss dword [rbp - 0x38], xmm1
jne 0x1400f8f40
xor eax, eax
mov qword [rbp + 0x40], rax
mov r9d, dword [rbp + 0x44]
mov qword [rbp + 0x48], rax
mov r11d, dword [rbp + 0x4c]
mov r8d, eax
mov r10d, eax
cmp r13d, 2
jle 0x1400f905b
movzx r14d, word [rdi + 0x44f6]
lea r15d, [r13 - 3]
lea ebx, [rax + 2]
shr r15d, 2
inc r15d
cmp r14d, 2
jle 0x1400f904d
mov rdx, qword [rdi + 0x4510]
mov rcx, r14
add rdx, 0x14
imul rcx, rbx
lea rdx, [rdx + rcx*8]
lea ecx, [r14 - 3]
shr ecx, 2
inc ecx
nop dword [rax + rax]
movsx eax, word [rdx - 4]
inc r11d
lea rdx, [rdx + 0x20]
add r10d, eax
movsx eax, word [rdx - 0x22]
add r9d, eax
movsx eax, word [rdx - 0x20]
add r8d, eax
dec rcx
jne 0x1400f9020
mov dword [rbp + 0x48], r8d
mov dword [rbp + 0x44], r9d
mov dword [rbp + 0x40], r10d
add rbx, 4
dec r15
jne 0x1400f8ff3
mov r14, qword [rsp + 0x68]
test r13d, r13d
jle 0x1400f9117
mulss xmm5, xmm8
xorps xmm0, xmm0
movd xmm1, r11d
mov rax, r13
cvtss2sd xmm0, xmm5
mulss xmm6, xmm8
mulss xmm7, xmm8
movd xmm3, r10d
movd xmm4, r9d
movd xmm5, r8d
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [0x1401f6cf8]
cvtdq2pd xmm3, xmm3
cvtdq2pd xmm4, xmm4
cvtdq2pd xmm5, xmm5
divsd xmm3, xmm1
divsd xmm4, xmm1
divsd xmm5, xmm1
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm6
addsd xmm4, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm7
addsd xmm5, xmm0
nop
movss xmm0, dword [rsi - 8]
movss xmm1, dword [rsi - 4]
movss xmm2, dword [rsi]
add rsi, 0xc
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
addsd xmm0, xmm3
addsd xmm1, xmm4
addsd xmm2, xmm5
cvtpd2ps xmm0, xmm0
movss dword [rsi - 0x14], xmm0
cvtpd2ps xmm0, xmm1
movss dword [rsi - 0x10], xmm0
cvtpd2ps xmm0, xmm2
movss dword [rsi - 0xc], xmm0
dec rax
jne 0x1400f90d0
mov r9d, r12d
mov dword [rsp + 0x30], r12d
test r13d, r13d
jle 0x1400f960e
mov edx, dword [rbp + 0x70]
movss xmm10, dword [0x140269a84]
xorps xmm9, xmm9
dec edx
xorps xmm12, xmm12
mov eax, edx
mov dword [rsp + 0x40], edx
cvtsi2sd xmm9, rax
nop dword [rax]
movzx eax, word [rdi + 0x44f4]
movd xmm3, r9d
mov ecx, 6
movd xmm0, eax
cvtdq2pd xmm3, xmm3
lea rax, [rbp + 0xf0]
cvtdq2pd xmm0, xmm0
subsd xmm0, xmm13
divsd xmm3, xmm0
nop dword [rax]
movss xmm0, dword [rax]
movss xmm1, dword [rax - 0x18]
add rax, 4
subss xmm0, xmm1
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm0
mulsd xmm2, xmm3
addsd xmm2, xmm1
cvtpd2ps xmm0, xmm2
movss dword [rax - 0x34], xmm0
dec rcx
jne 0x1400f9180
movzx ebx, word [rdi + 0x44f6]
movaps xmm0, xmm9
mov eax, ebx
mulsd xmm0, xmm3
imul eax, r9d
cvtpd2ps xmm3, xmm0
movsxd rcx, eax
mov rax, qword [rdi + 0x4510]
lea r8, [rax + rcx*8]
cvttss2si r10d, xmm3
mov qword [rsp + 0x70], r8
mov eax, dword [r8]
mov dword [rbp + 0x1c0], eax
movzx eax, word [r8 + 4]
mov word [rbp + 0x1c4], ax
cmp r10d, edx
jne 0x1400f91fb
dec r10d
mov esi, dword [rbp + 0x6c]
movd xmm0, r10d
cvtdq2ps xmm0, xmm0
subss xmm3, xmm0
test esi, esi
je 0x1400f92cc
mov r14, qword [rsp + 0x48]
mov rdi, qword [rbp - 0x80]
lea eax, [r10 + 1]
movaps xmm4, xmm10
subss xmm4, xmm3
sub r10d, eax
mov r9d, esi
imul r9d, eax
imul r10d, esi
mov r11d, r9d
neg r11d
nop dword [rax + rax]
lea eax, [r10 + r9]
lea rdx, [r9 + r9*2]
movaps xmm1, xmm3
lea r8, [rax + rax*2]
lea eax, [r11 + r9]
movaps xmm0, xmm4
movaps xmm2, xmm4
mulss xmm1, dword [r14 + rdx*4]
movsxd rcx, eax
inc r9d
lea rax, [rcx + rcx*2]
mulss xmm0, dword [r14 + r8*4]
mulss xmm2, dword [r14 + r8*4 + 4]
addss xmm1, xmm0
movaps xmm0, xmm3
movss dword [rdi + rax*4], xmm1
mulss xmm0, dword [r14 + rdx*4 + 4]
movaps xmm1, xmm4
mulss xmm1, dword [r14 + r8*4 + 8]
addss xmm2, xmm0
movaps xmm0, xmm3
movss dword [rdi + rax*4 + 4], xmm2
mulss xmm0, dword [r14 + rdx*4 + 8]
addss xmm1, xmm0
movss dword [rdi + rax*4 + 8], xmm1
lea eax, [r11 + r9]
cmp eax, esi
jb 0x1400f9240
mov rdi, qword [rbp - 0x78]
mov r8, qword [rsp + 0x70]
mov r14, qword [rsp + 0x68]
mov r9d, dword [rsp + 0x30]
mov edx, r12d
mov dword [rsp + 0x50], edx
test ebx, ebx
jle 0x1400f95e7
movd xmm8, dword [rsp + 0x34]
movsxd rax, r9d
lea rcx, [rax + rax*2]
lea rax, [rbp - 0x18]
shl rcx, 2
sub rcx, rax
cvtdq2ps xmm8, xmm8
lea rax, [rcx + r14]
lea rcx, [rbp + 0x154]
mov qword [rbp - 0x48], rax
lea rax, [rbp + 0x8c]
sub rax, rcx
lea rcx, [rbp + 0x1c0]
mov qword [rsp + 0x78], rax
mov rax, r8
sub rax, rcx
mov qword [rbp - 0x70], rax
nop word [rax + rax]
movzx eax, word [rdi + 0x44f6]
mov r12, qword [rbp - 0x48]
mov rdi, qword [rbp - 0x70]
movd xmm1, edx
lea r14, [rbp - 0x18]
lea r15, [rbp + 0xc0]
lea rsi, [rbp + 0x1c0]
movd xmm0, eax
cvtdq2ps xmm1, xmm1
mov r13d, 3
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
cvtps2pd xmm6, xmm1
subsd xmm6, qword [0x1401f6ca0]
movsx ecx, word [rsi + rdi]
movsx eax, word [rsi]
movss xmm1, dword [r15]
movss xmm2, dword [r12 + r14]
mov edx, ecx
cvtps2pd xmm1, xmm1
sub edx, eax
mov ebx, ecx
mov word [rsi], cx
mulsd xmm1, xmm6
cvtps2pd xmm2, xmm2
mov eax, edx
imul eax, edx
sar eax, 0xe
add eax, edx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm11
subss xmm0, dword [r15 + 4]
cvtps2pd xmm0, xmm0
subsd xmm0, xmm1
subsd xmm0, xmm2
call fcn.1401bf9e8
movd xmm1, ebx
add r14, 4
add rsi, 2
add r15, 8
cvtdq2pd xmm1, xmm1
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [r14 - 4], eax
dec r13
jne 0x1400f9374
xor r12d, r12d
lea r11d, [r13 + 1]
lea rbx, [rbp + 0x9c]
mov r10d, r12d
lea esi, [r13 + 3]
nop
mov eax, dword [rbp + r10 - 0x18]
lea r9d, [r11 + 1]
lea rbx, [rbx - 4]
mov ecx, eax
lea r10, [r10 + 4]
imul ecx, eax
sar ecx, 0xe
mov dword [rbp + r10 + 0x84], ecx
imul ecx, eax
sar ecx, 0xe
mov eax, 0x55555556
mov dword [rbp + r10 + 0x9c], ecx
mov ecx, r9d
imul r9d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
mov eax, 0x55555556
movsxd r8, ecx
imul r11d
mov eax, edx
mov ecx, dword [rbp + r8*4 - 0x18]
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub r11d, eax
movsxd rax, r11d
mov r11d, r9d
imul ecx, dword [rbp + rax*4 - 0x18]
sar ecx, 0xe
mov dword [rbx + 4], ecx
dec rsi
jne 0x1400f9400
mov ecx, dword [rsp + 0x34]
mov eax, dword [rsp + 0x50]
mov r13, qword [rsp + 0x70]
mov r14, qword [rsp + 0x78]
cdq
lea r15, [rbp - 0x18]
idiv ecx
lea rsi, [rbp + 0x154]
mov qword [rsp + 0x60], 3
sub ecx, edx
cdqe
movd xmm7, edx
mov rdx, qword [rbp - 0x80]
movd xmm6, ecx
lea rcx, [rax + rax*2]
lea rax, [rbp + 8]
lea r12, [rdx + 0xc]
cvtdq2ps xmm7, xmm7
shl rcx, 2
sub rax, rcx
sub rax, rdx
mov qword [rsp + 0x58], rax
lea rax, [rbp - 0x18]
cvtdq2ps xmm6, xmm6
mov rdi, qword [rsp + 0x58]
sub rcx, rax
add r12, rcx
nop dword [rax]
nop word [rax + rax]
movaps xmm3, xmm12
mov eax, 3
nop dword [rax]
movd xmm0, dword [r14 + rsi - 4]
movd xmm1, dword [r14 + rsi]
movd xmm2, dword [r14 + rsi + 4]
add rsi, 0xc
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
mulss xmm0, dword [rsi - 0x10]
mulss xmm1, dword [rsi - 0xc]
mulss xmm2, dword [rsi - 8]
addss xmm0, xmm3
movaps xmm3, xmm0
addss xmm3, xmm1
addss xmm3, xmm2
dec rax
jne 0x1400f9500
movaps xmm0, xmm3
lea rbx, [r12 + r15]
call fcn.1401c67e8
movd xmm1, dword [r15]
movaps xmm2, xmm6
mulss xmm2, dword [rbx - 0xc]
cvtdq2ps xmm1, xmm1
addss xmm0, xmm1
movaps xmm1, xmm7
mulss xmm1, dword [rbx]
addss xmm2, xmm1
mulss xmm0, xmm2
divss xmm0, xmm8
divss xmm0, dword [rdi + rbx - 0xc]
call fcn.1401c67e8
mov r10d, 0x7d00
cvttss2si eax, xmm0
cmp eax, r10d
cmovg eax, r10d
add r15, 4
add r13, 2
mov dword [r15 - 4], eax
mov word [r13 - 2], ax
sub r14, 0x24
dec qword [rsp + 0x60]
jne 0x1400f94f0
mov edx, dword [rsp + 0x50]
mov rdi, qword [rbp - 0x78]
add qword [rsp + 0x70], 8
movzx eax, word [rdi + 0x44f6]
add qword [rbp - 0x70], 8
inc edx
mov dword [rsp + 0x50], edx
mov r12d, 0
cmp edx, eax
jl 0x1400f9330
mov r9d, dword [rsp + 0x30]
movzx eax, word [rdi + 0x44f4]
mov r14, qword [rsp + 0x68]
mov edx, dword [rsp + 0x40]
inc r9d
mov dword [rsp + 0x30], r9d
cmp r9d, eax
jl 0x1400f9150
movss xmm12, dword [rbp + 8]
mov rcx, qword [rsp + 0x68]
call fcn.1401be23c
mov rcx, qword [rbp - 0x80]
call fcn.1401be23c
mov rcx, qword [rsp + 0x48]
call fcn.1401be23c
lea r8, str.BadPixels
lea rdx, [rbp + 0x68]
mov rcx, rdi
call fcn.1400f7660
mov ebx, 8
mov r8, rax
mov qword [rsp + 0x48], rax
test rax, rax
je 0x1400f97ea
cmp dword [rbp + 0x68], 0
mov eax, r12d
mov dword [rsp + 0x34], eax
jbe 0x1400f97e2
nop word [rax + rax]
movzx ecx, word [rdi + 0x44f4]
cdqe
mov r14d, dword [r8 + rax*4]
sub ecx, 3
mov r11d, r14d
mov edx, r14d
shr edx, 8
shr r11d, 0x14
sub r11d, dword [rbp - 0x54]
and edx, 0xfff
sub edx, dword [rbp - 0x58]
lea eax, [r11 - 1]
cmp eax, ecx
ja 0x1400f97cf
movzx r13d, word [rdi + 0x44f6]
lea eax, [rdx - 1]
lea ecx, [r13 - 3]
cmp eax, ecx
ja 0x1400f97cf
xor eax, eax
mov esi, r12d
movsxd r15, edx
mov qword [rbp - 8], rax
mov dword [rbp], eax
lea r9d, [rax + 1]
movss xmm2, dword [rbp]
movss xmm3, dword [rbp - 4]
movss xmm4, dword [rbp - 8]
lea r10, [0x140221e20]
test r9d, r14d
je 0x1400f974a
mov r8, qword [rdi + 0x4510]
movsx rdx, word [r10]
movsx rcx, word [r10 + 2]
movsxd rax, r11d
add rdx, rax
mov rax, r13
imul rax, rdx
add rax, r15
add rcx, rax
movsx eax, word [r8 + rcx*8]
inc esi
lea rcx, [rcx*4]
movd xmm0, eax
movsx eax, word [r8 + rcx*2 + 2]
cvtdq2ps xmm0, xmm0
addss xmm4, xmm0
movd xmm1, eax
movsx eax, word [r8 + rcx*2 + 4]
movd xmm0, eax
cvtdq2ps xmm1, xmm1
addss xmm3, xmm1
cvtdq2ps xmm0, xmm0
addss xmm2, xmm0
rol r9d, 1
add r10, 4
dec rbx
jne 0x1400f96e6
mov ebx, 8
test esi, esi
je 0x1400f97ca
mov rax, qword [rdi + 0x4510]
movsxd r8, r11d
movd xmm0, esi
mov rcx, r13
imul rcx, r8
cvtdq2ps xmm0, xmm0
add rcx, r15
divss xmm4, xmm0
divss xmm3, xmm0
divss xmm2, xmm0
cvttss2si edx, xmm4
mov word [rax + rcx*8], dx
movzx ecx, word [rdi + 0x44f6]
mov rax, qword [rdi + 0x4510]
cvttss2si edx, xmm3
imul rcx, r8
add rcx, r15
mov word [rax + rcx*8 + 2], dx
movzx ecx, word [rdi + 0x44f6]
mov rax, qword [rdi + 0x4510]
cvttss2si edx, xmm2
imul rcx, r8
add rcx, r15
mov word [rax + rcx*8 + 4], dx
mov r8, qword [rsp + 0x48]
mov eax, dword [rsp + 0x34]
inc eax
mov dword [rsp + 0x34], eax
cmp eax, dword [rbp + 0x68]
jb 0x1400f9670
mov rcx, r8
call fcn.1401be23c
movzx eax, word [rdi + 0x44f6]
mov edx, 0xc
lea ecx, [rax + rax*4]
movsxd rcx, ecx
call fcn.1401be1f8
lea r8, str.foveon_interpolate__
mov rcx, rdi
mov rdx, rax
mov rbx, rax
mov qword [rbp + 0xb8], rax
call fcn.140106a20
movzx r9d, word [rdi + 0x44f6]
mov edx, r12d
mov r8d, r12d
nop dword [rax + rax]
movsxd rcx, r8d
add r8d, r9d
lea rax, [rcx + rcx*2]
lea rcx, [rbx + rax*4]
movsxd rax, edx
inc edx
mov qword [rbp + rax*8 + 0x88], rcx
cmp edx, 5
jge 0x1400f9859
mov rbx, qword [rbp + 0xb8]
jmp 0x1400f9830
movzx eax, word [rdi + 0x44f4]
mov r13d, 2
or esi, 0xffffffff
sub eax, r13d
mov dword [rsp + 0x34], esi
mov dword [rsp + 0x30], r13d
cmp eax, r13d
jle 0x1400f9a6e
mov r14, qword [rbp + 0xa8]
mov r15, qword [rbp + 0xa0]
nop dword [rax]
add r13d, 2
cmp esi, r13d
jge 0x1400f9982
nop dword [rax]
mov r8d, r12d
lea r9, [rbp + 0x88]
nop word [rax + rax]
lea ecx, [r8 + 5]
mov eax, 0x2aaaaaab
inc r8d
lea r9, [r9 + 8]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov rax, qword [r9 - 8]
movsxd rcx, ecx
mov qword [rbp + rcx*8 + 0x88], rax
cmp r8d, 6
jl 0x1400f98b0
movzx edx, word [rdi + 0x44f6]
mov r14, qword [rbp + 0xa8]
inc esi
mov eax, edx
mov ebx, 2
imul eax, esi
add eax, 2
movsxd rcx, eax
mov rax, qword [rdi + 0x4510]
lea r10, [rax + rcx*8]
lea eax, [rdx - 2]
cmp eax, ebx
jle 0x1400f996e
lea r11, [r14 + 0x18]
nop dword [rax + rax]
movsx eax, word [r10 + 8]
movsx r8d, word [r10 - 8]
inc ebx
add r8d, eax
movsx eax, word [r10]
lea r10, [r10 + 8]
lea ecx, [rax + rax*2]
movsx eax, word [r10 - 0x18]
add r8d, 2
add ecx, ecx
lea r11, [r11 + 0xc]
lea r8d, [rcx + r8*4]
add r8d, eax
movsx eax, word [r10 + 8]
add r8d, eax
sar r8d, 4
mov dword [r11 - 0xc], r8d
movzx eax, word [rdi + 0x44f6]
sub eax, 2
cmp ebx, eax
jl 0x1400f9920
cmp esi, r13d
jl 0x1400f98a0
mov r15, qword [rbp + 0xa0]
mov dword [rsp + 0x34], esi
movzx edx, word [rdi + 0x44f6]
mov r13d, dword [rsp + 0x30]
mov ebx, 2
mov eax, edx
mov r10d, ebx
imul eax, r13d
add eax, 2
movsxd rcx, eax
mov rax, qword [rdi + 0x4510]
lea r11, [rax + rcx*8]
lea eax, [rdx - 2]
cmp eax, ebx
jle 0x1400f9a53
mov r13, qword [rbp + 0x98]
mov r12, qword [rbp + 0x90]
mov rsi, qword [rbp + 0x88]
nop dword [rax]
lea r8, [r10 + r10*2]
lea r11, [r11 + 8]
mov eax, dword [r13 + r8*4]
mov edx, dword [r12 + r8*4]
add edx, 2
lea ecx, [rax + rax*2]
add edx, dword [r15 + r8*4]
add ecx, ecx
lea r9d, [rcx + rdx*4]
movsx ecx, word [r11 - 8]
mov edx, dword [rsp + 0x38]
add r9d, dword [rsi + r8*4]
add r9d, dword [r14 + r8*4]
sar r9d, 4
cmp r10, 2
cmove edx, r9d
mov dword [rsp + 0x38], r9d
imul eax, r9d, 7
add eax, edx
mov edx, ecx
sar eax, 3
sub edx, eax
mov eax, 0x7d00
sar edx, 3
add edx, ecx
cmp edx, eax
cmovg edx, eax
inc ebx
inc r10
mov word [r11 - 8], dx
movzx eax, word [rdi + 0x44f6]
sub eax, 2
cmp ebx, eax
jl 0x1400f99d0
mov esi, dword [rsp + 0x34]
mov r13d, dword [rsp + 0x30]
xor r12d, r12d
movzx eax, word [rdi + 0x44f4]
inc r13d
sub eax, 2
mov dword [rsp + 0x30], r13d
cmp r13d, eax
jl 0x1400f9890
movd xmm0, dword [rbp + 0x78]
mov r9, qword [rdi + 0x4510]
mov ecx, 0xffff
cvtdq2ps xmm0, xmm0
divss xmm0, xmm12
cvttss2si eax, xmm0
movd xmm0, dword [rbp + 0x7c]
cvtdq2ps xmm0, xmm0
cmp eax, ecx
cmovl ecx, eax
divss xmm0, xmm14
cvttss2si eax, xmm0
movd xmm0, dword [rbp + 0x80]
cvtdq2ps xmm0, xmm0
cmp ecx, eax
cmovg ecx, eax
divss xmm0, xmm15
cvttss2si eax, xmm0
cmp ecx, eax
cmovg ecx, eax
movzx eax, word [rdi + 0x44f4]
lea r11d, [rcx + rcx*8]
movzx ecx, word [rdi + 0x44f6]
sar r11d, 4
imul eax, ecx
cdqe
lea rcx, [r9 + rax*8]
cmp r9, rcx
jae 0x1400f9bee
add r9, 2
nop dword [rax + rax]
movsx esi, word [r9 - 2]
mov ebx, esi
cmp esi, r11d
jle 0x1400f9bbe
movsx r14d, word [r9]
mov r15d, r14d
cmp r14d, r11d
jle 0x1400f9bbe
movsx r13d, word [r9 + 2]
cmp r13d, r11d
jle 0x1400f9bbe
mov r8d, ebx
mov ecx, ebx
mov rdx, r9
mov r10d, 2
nop dword [rax]
movsx eax, word [rdx]
lea rdx, [rdx + 2]
cmp ecx, eax
cmovg ecx, eax
cmp r8d, eax
cmovl r8d, eax
dec r10
jne 0x1400f9b30
lea eax, [r11 + r11]
cmp ecx, eax
jl 0x1400f9b5b
mov word [r9], r8w
mov word [r9 - 2], r8w
jmp 0x1400f9bb9
mov eax, r11d
sub eax, ecx
mov ecx, 0x4000
shl eax, 0xe
cdq
idiv r11d
add eax, 0x4000
imul eax, eax
sar eax, 0xe
sub ecx, eax
mov eax, r8d
sub eax, ebx
imul ecx, ecx
sar ecx, 0xe
imul eax, ecx
sar eax, 0xe
add ax, si
mov word [r9 - 2], ax
mov eax, r8d
sub eax, r15d
imul eax, ecx
sar eax, 0xe
add ax, r14w
mov word [r9], ax
movsx eax, r13w
sub r8d, eax
imul r8d, ecx
sar r8d, 0xe
add r8w, r13w
mov word [r9 + 2], r8w
movzx ecx, word [rdi + 0x44f6]
movzx eax, word [rdi + 0x44f4]
add r9, 8
imul ecx, eax
mov rax, qword [rdi + 0x4510]
movsxd rcx, ecx
lea rdx, [rax + rcx*8]
lea rax, [r9 - 2]
cmp rax, rdx
jb 0x1400f9af0
movzx eax, word [rdi + 0x44f4]
mov r14d, 2
or esi, 0xffffffff
sub eax, r14d
mov ebx, esi
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x34], ebx
cmp eax, r14d
jle 0x1400f9e5f
nop word [rax + rax]
lea esi, [r14 + 2]
cmp ebx, esi
jge 0x1400f9d2f
nop dword [rax]
mov r8d, r12d
lea r9, [rbp + 0x88]
nop word [rax + rax]
lea ecx, [r8 + 5]
mov eax, 0x2aaaaaab
inc r8d
lea r9, [r9 + 8]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov rax, qword [r9 - 8]
movsxd rcx, ecx
mov qword [rbp + rcx*8 + 0x88], rax
cmp r8d, 6
jl 0x1400f9c40
movzx edx, word [rdi + 0x44f6]
inc ebx
mov r11d, 2
mov eax, edx
imul eax, ebx
add eax, 2
movsxd rcx, eax
mov rax, qword [rdi + 0x4510]
lea r9, [rax + rcx*8]
lea eax, [rdx - 2]
cmp eax, r11d
jle 0x1400f9d23
mov r10, qword [rbp + 0xa8]
add r10, 0x20
movsx eax, word [r9 - 8]
movsx edx, word [r9]
inc r11d
add eax, 2
lea r9, [r9 + 8]
lea r10, [r10 + 0xc]
lea edx, [rax + rdx*2]
movsx eax, word [r9]
add edx, eax
sar edx, 2
mov dword [r10 - 0x14], edx
movsx eax, word [r9 + 2]
movsx edx, word [r9 - 6]
add eax, 2
lea edx, [rax + rdx*2]
movsx eax, word [r9 - 0xe]
add edx, eax
sar edx, 2
mov dword [r10 - 0x10], edx
movsx eax, word [r9 + 4]
movsx edx, word [r9 - 4]
add eax, 2
lea edx, [rax + rdx*2]
movsx eax, word [r9 - 0xc]
add edx, eax
sar edx, 2
mov dword [r10 - 0xc], edx
movzx eax, word [rdi + 0x44f6]
sub eax, 2
cmp r11d, eax
jl 0x1400f9cb1
cmp ebx, esi
jl 0x1400f9c30
mov dword [rsp + 0x34], ebx
movzx edx, word [rdi + 0x44f6]
mov dword [rsp + 0x38], 2
mov eax, edx
imul eax, r14d
add eax, 2
movsxd rcx, eax
mov rax, qword [rdi + 0x4510]
lea r14, [rax + rcx*8]
lea eax, [rdx - 2]
cmp eax, 2
jle 0x1400f9e3c
mov rcx, qword [rbp + 0xa0]
mov rax, qword [rbp + 0x90]
mov r13, qword [rbp + 0x98]
sub rax, rcx
lea r15, [rbp + 0x78]
sub r13, rcx
sub r15, rcx
mov qword [rsp + 0x58], rax
lea rbx, [rcx + 0x18]
sub r15, 0x18
mov rsi, r12
mov r12, qword [rsp + 0x58]
nop dword [rax + rax]
mov ecx, dword [r13 + rbx]
mov eax, dword [r12 + rbx]
movsx r8d, word [r14 + rsi*2]
lea edx, [rax + rcx*2]
mov rcx, rdi
add edx, dword [rbx]
sar edx, 2
sub r8d, edx
mov rdx, qword [rbp + 0x148]
call fcn.1400f7440
inc rsi
add rbx, 4
neg eax
mov dword [r15 + rbx - 4], eax
cmp rsi, 3
jl 0x1400f9da0
mov eax, dword [rbp + 0x78]
mov ecx, dword [rbp + 0x7c]
mov edx, dword [rbp + 0x80]
lea r8d, [rax + rcx]
add r14, 8
sub r15, 0xc
add r8d, edx
mov r12d, 0
sar r8d, 3
sub ax, r8w
sub cx, r8w
sub dx, r8w
add word [r14 - 6], cx
add word [r14 - 8], ax
add word [r14 - 4], dx
mov ecx, dword [rsp + 0x38]
movzx eax, word [rdi + 0x44f6]
inc ecx
sub eax, 2
mov dword [rsp + 0x38], ecx
cmp ecx, eax
jl 0x1400f9d90
mov ebx, dword [rsp + 0x34]
mov r14d, dword [rsp + 0x30]
movzx eax, word [rdi + 0x44f4]
inc r14d
sub eax, 2
mov dword [rsp + 0x30], r14d
cmp r14d, eax
jl 0x1400f9c20
or esi, 0xffffffff
movzx eax, word [rdi + 0x44f4]
mov ebx, 2
sub eax, ebx
mov dword [rsp + 0x34], ebx
cmp eax, ebx
jle 0x1400fa123
nop dword [rax]
lea r11d, [rbx + 2]
cmp esi, r11d
jge 0x1400f9fbc
nop dword [rax]
mov r8d, r12d
lea r9, [rbp + 0x88]
nop word [rax + rax]
lea ecx, [r8 + 5]
mov eax, 0x2aaaaaab
inc r8d
lea r9, [r9 + 8]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov rax, qword [r9 - 8]
movsxd rcx, ecx
mov qword [rbp + rcx*8 + 0x88], rax
cmp r8d, 6
jl 0x1400f9ea0
movzx edx, word [rdi + 0x44f6]
inc esi
mov r10d, 2
mov eax, edx
imul eax, esi
add eax, 2
movsxd rcx, eax
mov rax, qword [rdi + 0x4510]
lea r8, [rax + rcx*8]
lea eax, [rdx - 2]
cmp eax, r10d
jle 0x1400f9faf
mov r9, qword [rbp + 0xa8]
add r9, 0x20
movsx eax, word [r8 + 0x10]
movsx ecx, word [r8 - 0x10]
inc r10d
add ecx, eax
movsx eax, word [r8 - 8]
lea r8, [r8 + 8]
add ecx, eax
movsx eax, word [r8 - 8]
lea r9, [r9 + 0xc]
add ecx, eax
movsx eax, word [r8]
add eax, 2
add ecx, eax
sar ecx, 2
mov dword [r9 - 0x14], ecx
movsx eax, word [r8 - 0x16]
movsx ecx, word [r8 + 0xa]
add ecx, eax
movsx eax, word [r8 + 2]
add ecx, eax
movsx eax, word [r8 - 0xe]
add ecx, eax
movsx eax, word [r8 - 6]
add eax, 2
add ecx, eax
sar ecx, 2
mov dword [r9 - 0x10], ecx
movsx eax, word [r8 - 0x14]
movsx ecx, word [r8 + 0xc]
add ecx, eax
movsx eax, word [r8 + 4]
add ecx, eax
movsx eax, word [r8 - 0xc]
add ecx, eax
movsx eax, word [r8 - 4]
add eax, 2
add ecx, eax
sar ecx, 2
mov dword [r9 - 0xc], ecx
movzx eax, word [rdi + 0x44f6]
sub eax, 2
cmp r10d, eax
jl 0x1400f9f11
cmp esi, r11d
jl 0x1400f9e90
mov dword [rsp + 0x3c], esi
movzx edx, word [rdi + 0x44f6]
mov dword [rsp + 0x38], 2
mov eax, edx
imul eax, ebx
add eax, 2
movsxd rcx, eax
mov rax, qword [rdi + 0x4510]
lea r14, [rax + rcx*8]
lea eax, [rdx - 2]
cmp eax, 2
jle 0x1400fa10b
lea rax, [rbp + 0x40]
mov r13d, 0x18
sub r13, rax
nop word [rax + rax]
mov r11d, 0x3c
mov dword [rbp + 0x4c], 0x177
mov rbx, r14
lea esi, [r11 - 0x39]
lea r9, [rbp + 0x40]
nop dword [rax + rax]
mov edx, r12d
mov dword [r9], r12d
lea r10, [r9 + r13]
lea rcx, [rbp + 0x88]
mov r8d, 5
nop word [rax + rax]
mov rax, qword [rcx]
lea rcx, [rcx + 8]
add edx, dword [rax + r10]
dec r8
jne 0x1400fa040
movsx eax, word [rbx]
mov dword [r9], edx
mov ecx, dword [rbp + 0x4c]
add ecx, edx
add r11d, eax
add r9, 4
add rbx, 2
mov dword [rbp + 0x4c], ecx
dec rsi
jne 0x1400fa020
test r11d, r11d
cmovs r11d, r12d
cmp ecx, 0x177
jle 0x1400fa08c
shl r11d, 0x10
mov eax, r11d
cdq
idiv ecx
mov r15d, eax
jmp 0x1400fa093
imul r15d, r11d, 0xae
mov rsi, r12
mov r12, qword [rbp + 0x140]
nop dword [rax]
mov r8d, dword [rbp + rsi*4 + 0x40]
movsx ebx, word [r14 + rsi*2]
mov rdx, r12
mov rcx, rdi
imul r8d, r15d
add r8d, 0x8000
sar r8d, 0x10
sub r8d, ebx
call fcn.1400f7440
inc rsi
add ax, bx
mov word [r14 + rsi*2 - 2], ax
cmp rsi, 3
jl 0x1400fa0a0
mov ecx, dword [rsp + 0x38]
movzx eax, word [rdi + 0x44f6]
add r14, 8
inc ecx
sub eax, 2
add r13, 0xc
mov dword [rsp + 0x38], ecx
mov r12d, 0
cmp ecx, eax
jl 0x1400fa000
mov ebx, dword [rsp + 0x34]
mov esi, dword [rsp + 0x3c]
movzx eax, word [rdi + 0x44f4]
inc ebx
sub eax, 2
mov dword [rsp + 0x34], ebx
cmp ebx, eax
jl 0x1400f9e80
movzx ecx, word [rdi + 0x44f6]
movzx eax, word [rdi + 0x44f4]
mov rsi, qword [rdi + 0x4510]
imul eax, ecx
cdqe
lea rcx, [rsi + rax*8]
cmp rsi, rcx
jae 0x1400fa2a2
movsd xmm7, qword [0x1402316a8]
movsd xmm8, qword [0x1401f6ca0]
xorps xmm6, xmm6
nop
mov r14, r12
nop dword [rax]
nop word [rax + rax]
movsx ebx, word [rsi + r14*2]
mov rdx, qword [rbp + r14*8 + 0x110]
mov rcx, rdi
mov r8d, ebx
call fcn.1400f7440
inc r14
sub bx, ax
mov word [rsi + r14*2 - 2], bx
cmp r14, 3
jl 0x1400fa170
movsx eax, word [rsi]
movsx ecx, word [rsi + 2]
mov r14, r12
lea r15d, [rax + rcx*2]
movsx eax, word [rsi + 4]
add r15d, eax
sar r15d, 2
nop dword [rax]
nop word [rax + rax]
movsx ebx, word [rsi + r14*2]
mov rdx, qword [rbp + r14*8 + 0x110]
mov rcx, rdi
mov r8d, ebx
sub r8d, r15d
call fcn.1400f7440
inc r14
sub bx, ax
mov word [rsi + r14*2 - 2], bx
cmp r14, 3
jl 0x1400fa1c0
mov r9, r12
lea rcx, [rbp + 0x18]
nop dword [rax]
nop dword [rax + rax]
movaps xmm1, xmm6
mov rdx, rsi
mov r8d, 3
nop dword [rax]
movsx eax, word [rdx]
add rcx, 4
add rdx, 2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rcx - 4]
cvtps2pd xmm0, xmm0
addsd xmm1, xmm0
dec r8
jne 0x1400fa210
comisd xmm6, xmm1
jbe 0x1400fa23e
movaps xmm1, xmm6
jmp 0x1400fa247
comisd xmm1, xmm7
jbe 0x1400fa247
movaps xmm1, xmm7
addsd xmm1, xmm8
inc r9
cvttsd2si eax, xmm1
mov dword [rbp + r9*4 - 0x1c], eax
cmp r9, 3
jl 0x1400fa200
movzx eax, word [rbp - 0x18]
add rsi, 8
mov word [rsi - 8], ax
movzx eax, word [rbp - 0x14]
mov word [rsi - 6], ax
movzx eax, word [rbp - 0x10]
mov word [rsi - 4], ax
movzx ecx, word [rdi + 0x44f6]
movzx eax, word [rdi + 0x44f4]
imul ecx, eax
mov rax, qword [rdi + 0x4510]
movsxd rcx, ecx
lea rcx, [rax + rcx*8]
cmp rsi, rcx
jb 0x1400fa160
movzx eax, word [rdi + 0x44f6]
movzx ecx, word [rdi + 0x44f4]
shr rax, 2
shr rcx, 2
lea rdx, [rax + rax*2]
add rdx, rdx
call fcn.1401be1f8
lea r8, str.foveon_interpolate__
mov rcx, rdi
mov rdx, rax
mov r13, rax
mov qword [rsp + 0x78], rax
call fcn.140106a20
movzx ecx, word [rdi + 0x44f4]
shr ecx, 2
test ecx, ecx
je 0x1400fa495
lea eax, [rcx + 2]
mov edx, 0xfffc
nop dword [rax + rax]
dec eax
dec ecx
mov dword [rsp + 0x3c], r12d
mov dword [rsp + 0x38], eax
movzx eax, word [rdi + 0x44f6]
mov dword [rsp + 0x40], ecx
and ax, dx
mov rbx, r12
cmp r12w, ax
jae 0x1400fa489
movsxd rsi, ecx
nop dword [rax + rax]
movzx ecx, word [rdi + 0x44f6]
mov r11, qword [rdi + 0x4510]
mov edx, r12d
lea r15, [rcx*8]
add r11, 4
mov r8d, r12d
mov r9d, r12d
mov r14d, 4
imul rcx, rsi
add rcx, rbx
shl rcx, 5
add r11, rcx
nop word [rax + rax]
mov rcx, r11
mov r10d, 4
nop dword [rax]
movsx eax, word [rcx - 4]
lea rcx, [rcx + 8]
add r9d, eax
movsx eax, word [rcx - 0xa]
add r8d, eax
movsx eax, word [rcx - 8]
add edx, eax
dec r10
jne 0x1400fa380
add r11, r15
mov dword [rbp - 0x10], edx
mov dword [rbp - 0x14], r8d
mov dword [rbp - 0x18], r9d
dec r14
jne 0x1400fa370
mov r9, r12
mov r12d, dword [rsp + 0x38]
nop dword [rax + rax]
movzx eax, word [rdi + 0x44f4]
shr eax, 2
cmp r12d, eax
jle 0x1400fa3f8
movzx ecx, word [rdi + 0x44f6]
mov edx, dword [rbp + r9*4 - 0x18]
shr rcx, 2
sar edx, 4
imul rcx, rsi
add rcx, rbx
lea rax, [r9 + rcx*2]
add rcx, rax
mov word [r13 + rcx*2], dx
jmp 0x1400fa44a
movzx r8d, word [rdi + 0x44f6]
imul edx, dword [rbp + r9*4 - 0x18], 0x8d
lea rcx, [rsi + 1]
shr r8, 2
add edx, 0x800
imul rcx, r8
imul r8, rsi
add rcx, rbx
add r8, rbx
lea rax, [r9 + rcx*2]
add rcx, rax
movsx eax, word [r13 + rcx*2]
imul ecx, eax, 0x730
lea rax, [r9 + r8*2]
add edx, ecx
sar edx, 0xc
add r8, rax
mov word [r13 + r8*2], dx
inc r9
cmp r9, 3
jl 0x1400fa3c0
mov r10d, dword [rsp + 0x3c]
movzx eax, word [rdi + 0x44f6]
inc rbx
inc r10d
shr eax, 2
mov r12d, 0
mov dword [rsp + 0x3c], r10d
cmp r10d, eax
jl 0x1400fa330
mov ecx, dword [rsp + 0x40]
mov edx, 0xfffc
mov eax, dword [rsp + 0x38]
test ecx, ecx
jne 0x1400fa300
movzx eax, word [rdi + 0x44f4]
mov r14d, r12d
mov dword [rsp + 0x30], r12d
test eax, 0xfffffffc
jle 0x1400fa8f6
nop
mov r15, qword [rbp + 0x88]
mov r11d, r12d
mov ebx, r12d
mov esi, r12d
test r14b, 3
jne 0x1400fa5cc
movzx r9d, word [rdi + 0x44f6]
and r9d, 0xfffffffc
je 0x1400fa5cc
movsxd rcx, r9d
mov eax, r14d
cdq
lea r10, [rcx + 1]
and edx, 3
lea r10, [rcx + r10*2]
add eax, edx
lea r10, [r15 + r10*4]
sar eax, 2
movsxd r14, eax
nop word [rax + rax]
dec r9d
imul esi, esi, 0x1a33
lea r10, [r10 - 0xc]
mov eax, r9d
imul ebx, ebx, 0x1a33
imul r11d, r11d, 0x1a33
cdq
add r11d, 0x1000
and edx, 3
add eax, edx
sar eax, 2
movsxd r8, eax
movzx eax, word [rdi + 0x44f6]
shr rax, 2
imul rax, r14
add rax, r8
lea rax, [rax + rax*2]
movsx ecx, word [r13 + rax*2]
imul edx, ecx, 0x5cd
add edx, 0x1000
add esi, edx
sar esi, 0xd
mov dword [r10 - 8], esi
movzx eax, word [rdi + 0x44f6]
shr rax, 2
imul rax, r14
add rax, r8
lea rax, [rax + rax*2]
movsx ecx, word [r13 + rax*2 + 2]
imul edx, ecx, 0x5cd
add edx, 0x1000
add ebx, edx
sar ebx, 0xd
mov dword [r10 - 4], ebx
movzx eax, word [rdi + 0x44f6]
shr rax, 2
imul rax, r14
add rax, r8
lea rax, [rax + rax*2]
movsx ecx, word [r13 + rax*2 + 4]
imul edx, ecx, 0x5cd
add r11d, edx
sar r11d, 0xd
mov dword [r10], r11d
test r9d, r9d
jne 0x1400fa500
mov r14d, dword [rsp + 0x30]
movzx eax, word [rdi + 0x44f6]
mov rsi, qword [rbp + 0x90]
mov r8d, r12d
mov qword [rbp - 0x14], 0
mov r9d, r12d
mov r10d, r12d
mov dword [rbp - 0x18], r12d
mov ebx, r12d
test eax, 0xfffffffc
jle 0x1400fa694
mov r11, r15
lea rdx, [rsi + 4]
sub r11, rsi
nop word [rax + rax]
imul ecx, dword [r11 + rdx - 4], 0x5cd
imul r8d, r8d, 0x1a33
imul r10d, r10d, 0x1a33
inc ebx
lea rdx, [rdx + 0xc]
add ecx, 0x1000
add r8d, 0x1000
add r10d, ecx
sar r10d, 0xd
mov dword [rdx - 0x10], r10d
imul ecx, dword [r11 + rdx - 0xc], 0x5cd
imul r9d, r9d, 0x1a33
add ecx, 0x1000
add r9d, ecx
sar r9d, 0xd
mov dword [rdx - 0xc], r9d
imul ecx, dword [r11 + rdx - 8], 0x5cd
add r8d, ecx
sar r8d, 0xd
mov dword [rdx - 8], r8d
movzx eax, word [rdi + 0x44f6]
and eax, 0xfffffffc
cmp ebx, eax
jl 0x1400fa610
mov dword [rbp - 0x10], r8d
mov dword [rbp - 0x14], r9d
mov dword [rbp - 0x18], r10d
mov rbx, qword [rbp + 0x98]
test r14d, r14d
jne 0x1400fa6bf
movzx eax, word [rdi + 0x44f6]
mov rdx, rsi
mov rcx, rbx
lea r8, [rax + rax*2]
shl r8, 2
call fcn.1401bd6e0
jmp 0x1400fa756
movzx eax, word [rdi + 0x44f6]
mov r10d, r12d
test eax, 0xfffffffc
jle 0x1400fa756
mov r9, rsi
lea r8, [rbx + 4]
sub r9, rbx
nop
imul ecx, dword [r9 + r8 - 4], 0x5cd
imul edx, dword [r8 - 4], 0x1a33
inc r10d
lea r8, [r8 + 0xc]
add ecx, 0x1000
add edx, ecx
sar edx, 0xd
mov dword [r8 - 0x10], edx
imul ecx, dword [r9 + r8 - 0xc], 0x5cd
imul edx, dword [r8 - 0xc], 0x1a33
add ecx, 0x1000
add edx, ecx
sar edx, 0xd
mov dword [r8 - 0xc], edx
imul edx, dword [r8 - 8], 0x1a33
imul ecx, dword [r9 + r8 - 8], 0x5cd
add edx, 0x1000
add edx, ecx
sar edx, 0xd
mov dword [r8 - 8], edx
movzx eax, word [rdi + 0x44f6]
and eax, 0xfffffffc
cmp r10d, eax
jl 0x1400fa6e0
movzx eax, word [rdi + 0x44f6]
mov dword [rsp + 0x3c], r12d
mov r11, r12
mov qword [rsp + 0x48], r12
test eax, 0xfffffffc
jle 0x1400fa8db
lea rax, [rbp - 0x18]
lea rdx, [rbx + 8]
movsxd r15, r14d
mov r13, rbx
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x58], r15
sub r13, rax
mov ecx, dword [rdx - 8]
mov r10, qword [rdi + 0x4510]
mov r8d, dword [rdx]
movzx r9d, word [rdi + 0x44f6]
add ecx, 0x1e
mov esi, r12d
add ecx, dword [rdx - 4]
mov eax, r9d
lea rbx, [rbp - 0x18]
imul r9, r15
add r8d, ecx
lea r14, [rbp + 0x128]
mov r12d, 3
imul rax, r15
add rax, r11
lea rdx, [rax*4]
movsx eax, word [r10 + rax*8 + 2]
movsx ecx, word [r10 + rdx*2 + 4]
add ecx, eax
movsx eax, word [r10 + rdx*2]
add eax, 0x1e
add eax, ecx
shl eax, 0x10
cdq
idiv r8d
add r9, r11
lea r15, [r10 + r9*8]
mov dword [rsp + 0x40], eax
nop dword [rax]
nop word [rax + rax]
mov r8d, dword [r13 + rbx]
mov rdx, qword [r14]
mov rcx, rdi
imul r8d, eax
movsx eax, word [r15]
add r8d, 0x8000
sar r8d, 0x10
sub r8d, eax
call fcn.1400f7440
lea r15, [r15 + 2]
lea r14, [r14 + 8]
add esi, eax
mov dword [rbx], eax
mov eax, dword [rsp + 0x40]
lea rbx, [rbx + 4]
dec r12
jne 0x1400fa810
mov r11, qword [rsp + 0x48]
mov r15, qword [rsp + 0x58]
sar esi, 3
xor r12d, r12d
mov r9d, r12d
movzx eax, word [rdi + 0x44f6]
mov rdx, qword [rdi + 0x4510]
mov ecx, dword [rbp + r9*4 - 0x18]
imul rax, r15
add rax, r11
lea r8, [r9 + rax*4]
movsx eax, word [rdx + r8*2]
add ecx, eax
sub ecx, esi
cmovs ecx, r12d
inc r9
mov word [rdx + r8*2], cx
cmp r9, 3
jl 0x1400fa862
mov ecx, dword [rsp + 0x3c]
mov rdx, qword [rsp + 0x60]
movzx eax, word [rdi + 0x44f6]
inc ecx
inc r11
add rdx, 0xc
and eax, 0xfffffffc
add r13, 0xc
mov dword [rsp + 0x3c], ecx
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x60], rdx
cmp ecx, eax
jl 0x1400fa790
mov r13, qword [rsp + 0x78]
mov r14d, dword [rsp + 0x30]
movzx eax, word [rdi + 0x44f4]
inc r14d
and eax, 0xfffffffc
mov dword [rsp + 0x30], r14d
cmp r14d, eax
jl 0x1400fa4b0
mov rcx, r13
call fcn.1401be23c
mov rcx, qword [rbp + 0xb8]
call fcn.1401be23c
lea rbx, [rbp + 0x110]
mov esi, 8
mov rcx, qword [rbx]
call fcn.1401be23c
lea rbx, [rbx + 8]
dec rsi
jne 0x1400fa916
mov r15d, dword [rbp - 0x64]
mov esi, dword [rbp - 0x5c]
mov r14d, dword [rbp - 0x60]
sub r15d, dword [rbp - 0x54]
mov edx, dword [rbp - 0x68]
sub esi, 2
mov eax, esi
sub r14d, edx
sub eax, r15d
test eax, eax
jle 0x1400fa99a
movsxd r13, r14d
mov ebx, r12d
shl r13, 3
sub esi, r15d
nop word [rax + rax]
mov r8, qword [rdi + 0x4510]
movzx eax, word [rdi + 0x44f6]
lea ecx, [r15 + r12]
imul eax, ecx
add eax, edx
cdqe
lea rdx, [r8 + rax*8]
movsxd rax, ebx
lea rcx, [r8 + rax*8]
mov r8, r13
call fcn.1401bd6e0
mov edx, dword [rbp - 0x68]
inc r12d
add ebx, r14d
cmp r12d, esi
jl 0x1400fa960
mov word [rdi + 0x44f6], r14w
mov word [rdi + 0x44f4], r12w
movaps xmm14, xmmword [rsp + 0x370]
movaps xmm13, xmmword [rsp + 0x380]
movaps xmm11, xmmword [rsp + 0x3a0]
movaps xmm10, xmmword [rsp + 0x3b0]
movaps xmm9, xmmword [rsp + 0x3c0]
movaps xmm8, xmmword [rsp + 0x3d0]
movaps xmm7, xmmword [rsp + 0x3e0]
movaps xmm6, xmmword [rsp + 0x3f0]
movaps xmm15, xmmword [rsp + 0x360]
mov r15, qword [rsp + 0x400]
mov r14, qword [rsp + 0x448]
mov r13, qword [rsp + 0x440]
mov rsi, qword [rsp + 0x438]
mov rcx, qword [rbp + 0x250]
xor rcx, rsp
call fcn.1401bd600
movaps xmm12, xmmword [rsp + 0x390]
add rsp, 0x408
pop r12
pop rdi
pop rbx
pop rbp
ret