Function at 0x140090d50
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x108
mov r14, qword [rsp + 0x190]
mov r13, rcx
mov rdi, qword [rsp + 0x1b0]
mov rbx, qword [rsp + 0x1b8]
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
lea rcx, [rdi + 0x2c28]
movaps xmmword [rax - 0x88], xmm9
movaps xmmword [rax - 0x98], xmm10
movaps xmmword [rax - 0xa8], xmm11
movaps xmmword [rax - 0xb8], xmm12
movaps xmmword [rax - 0xc8], xmm13
mov rax, qword [rsp + 0x198]
add r14, rax
mov qword [rsp + 0x60], r14
lea rbp, [rax + r8]
lea r12, [r14 + rbp]
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x48], r12
cmp qword [rcx], r12
jge 0x140090e04
mov r8, rbx
mov rdx, r12
call fcn.14003e440
lea rcx, [rdi + 0x2c68]
cmp qword [rcx], r12
jge 0x140090e1b
mov r8, rbx
mov rdx, r12
call fcn.14003e440
xor esi, esi
lea r9, [rbp - 1]
mov edx, esi
test r9, r9
js 0x140090eba
mov r8, qword [rsp + 0x1a0]
add r8, 0x38
cmp rbp, 4
jl 0x140090ea0
lea r10, [r9 - 3]
mov rax, qword [r8]
mov rcx, qword [rdi + 0x2c60]
mov rax, qword [rax + rdx*8]
mov qword [rcx + rdx*8], rax
mov rax, qword [r8]
mov rcx, qword [rdi + 0x2c60]
mov rax, qword [rax + rdx*8 + 8]
mov qword [rcx + rdx*8 + 8], rax
mov rax, qword [r8]
mov rcx, qword [rdi + 0x2c60]
mov rax, qword [rax + rdx*8 + 0x10]
mov qword [rcx + rdx*8 + 0x10], rax
mov rax, qword [r8]
mov rcx, qword [rdi + 0x2c60]
mov rax, qword [rax + rdx*8 + 0x18]
mov qword [rcx + rdx*8 + 0x18], rax
add rdx, 4
cmp rdx, r10
jle 0x140090e42
cmp rdx, r9
jg 0x140090eba
nop
mov rax, qword [r8]
mov rcx, qword [rdi + 0x2c60]
mov rax, qword [rax + rdx*8]
mov qword [rcx + rdx*8], rax
inc rdx
cmp rdx, r9
jle 0x140090ea0
lea r15, [r14 - 1]
mov r9, rsi
test r15, r15
js 0x140090f9f
cmp r14, 4
mov r14, qword [rsp + 0x1a8]
jl 0x140090f80
mov rbx, rbp
lea r8, [rbp*8 + 0x18]
mov r11, 0xffffffffffffffff
lea r10, [r15 + 1]
sub r11, rbp
neg rbx
mov rbp, 0xfffffffffffffffd
sub rbp, qword [rsp + 0x38]
shr r10, 2
lea r9, [r10*4]
mov rax, qword [r14 + 0x38]
lea rdx, [r8 + rbp*8]
mov rcx, qword [rdi + 0x2c60]
mov rax, qword [rdx + rax]
mov qword [r8 + rcx - 0x18], rax
mov rax, qword [r14 + 0x38]
mov rcx, qword [rdi + 0x2c60]
mov rax, qword [rax + rdx + 8]
mov qword [rcx + r8 - 0x10], rax
mov rax, qword [r14 + 0x38]
mov rcx, qword [rdi + 0x2c60]
add rax, r8
mov rax, qword [rax + r11*8]
mov qword [r8 + rcx - 8], rax
mov rax, qword [r14 + 0x38]
mov rcx, qword [rdi + 0x2c60]
add rax, r8
mov rax, qword [rax + rbx*8]
mov qword [r8 + rcx], rax
add r8, 0x20
sub r10, 1
jne 0x140090f10
mov rbp, qword [rsp + 0x38]
cmp r9, r15
jg 0x140090f9f
nop
mov rax, qword [rdi + 0x2c60]
mov rdx, qword [r14 + 0x38]
lea rcx, [rax + r9*8]
mov rax, qword [rdx + r9*8]
inc r9
mov qword [rcx + rbp*8], rax
cmp r9, r15
jle 0x140090f80
lea rcx, [rdi + 0x2b58]
lea rbx, [r12 + r12]
mov qword [rsp + 0x50], rcx
lea r8, [r12 + 1]
mov r14, rcx
test rbx, rbx
jle 0x140090ffc
mov qword [rsp + 0x50], rcx
test r8, r8
jle 0x140090ffc
mov qword [rsp + 0x50], rcx
cmp qword [rcx], rbx
jl 0x140090fe7
mov qword [rsp + 0x50], rcx
cmp qword [rcx + 8], r8
jge 0x140090ffc
lea r14, [rdi + 0x2b58]
mov qword [rsp + 0x50], r14
mov r15, qword [rsp + 0x1b8]
mov rdx, rbx
mov r9, r15
call fcn.14003e950
jmp 0x140091004
mov r15, qword [rsp + 0x1b8]
lea rcx, [rdi + 0x2ba8]
cmp qword [rcx], rbx
jge 0x14009101b
mov r8, r15
mov rdx, rbx
call fcn.14003e440
mov r10, qword [rsp + 0x160]
lea r11, [r12 - 1]
movsd xmm7, qword [0x140215d98]
lea rax, [rbp - 1]
movsd xmm6, qword [0x140216560]
xorps xmm8, xmm8
movsd xmm9, qword [0x140216550]
movsd xmm10, qword [0x140215ec0]
lea r15, [r10 - 1]
movsd xmm13, qword [0x140215d50]
movsd xmm12, qword [0x140215f38]
movsd xmm11, qword [0x140215d40]
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x198], r11
mov qword [rsp + 0x68], rax
cmp qword [r14], 1
mov r8, rsi
js 0x1400910da
nop dword [rax]
cmp qword [rdi + 0x2b60], 1
mov rdx, rsi
js 0x1400910c1
nop dword [rax]
mov rax, qword [rdi + 0x2ba0]
mov rcx, qword [rax + r8*8]
mov qword [rcx + rdx*8], rsi
inc rdx
mov rax, qword [rdi + 0x2b60]
dec rax
cmp rdx, rax
jle 0x1400910a0
mov rax, qword [rdi + 0x2be0]
mov qword [rax + r8*8], rsi
inc r8
mov rax, qword [r14]
dec rax
cmp r8, rax
jle 0x140091090
movaps xmm2, xmm8
mov r9, rsi
test r15, r15
js 0x140091209
mov r11, qword [rsp + 0x160]
mov r12, qword [rsp + 0x158]
nop word [rax + rax]
mov r8, rsi
cmp r11, 4
jl 0x140091191
lea r10, [r15 - 3]
mov rax, qword [r13 + 0x48]
mov rdx, qword [rax + r9*8]
mov rax, qword [rdi + 0x2ba0]
mov rcx, qword [rax + r9*8]
mov rax, qword [rdx + r8*8]
mov qword [rcx + r8*8], rax
mov rax, qword [r13 + 0x48]
mov rdx, qword [rax + r9*8]
mov rax, qword [rdi + 0x2ba0]
mov rcx, qword [rax + r9*8]
mov rax, qword [rdx + r8*8 + 8]
mov qword [rcx + r8*8 + 8], rax
mov rax, qword [r13 + 0x48]
mov rdx, qword [rax + r9*8]
mov rax, qword [rdi + 0x2ba0]
mov rcx, qword [rax + r9*8]
mov rax, qword [rdx + r8*8 + 0x10]
mov qword [rcx + r8*8 + 0x10], rax
mov rax, qword [r13 + 0x48]
mov rdx, qword [rax + r9*8]
mov rax, qword [rdi + 0x2ba0]
mov rcx, qword [rax + r9*8]
mov rax, qword [rdx + r8*8 + 0x18]
mov qword [rcx + r8*8 + 0x18], rax
add r8, 4
cmp r8, r10
jle 0x140091111
cmp r8, r15
jg 0x1400911b4
mov rax, qword [r13 + 0x48]
mov rdx, qword [rax + r9*8]
mov rax, qword [rdi + 0x2ba0]
mov rcx, qword [rax + r9*8]
mov rax, qword [rdx + r8*8]
mov qword [rcx + r8*8], rax
inc r8
cmp r8, r15
jle 0x140091191
mov rax, qword [r12 + 0x38]
movsd xmm0, qword [rax + r9*8]
mov rax, qword [rdi + 0x2be0]
xorps xmm0, xmm6
movsd qword [rax + r9*8], xmm0
mov rax, qword [r13 + 0x48]
mov rcx, qword [rax + r9*8]
movsd xmm0, qword [rcx + r9*8]
inc r9
andps xmm0, xmm9
maxsd xmm0, xmm2
movaps xmm2, xmm0
cmp r9, r15
jle 0x140091100
mov r12, qword [rsp + 0x58]
mov r11, qword [rsp + 0x198]
mov r10, qword [rsp + 0x160]
movsd qword [rsp + 0x40], xmm2
movsd qword [rsp + 0x30], xmm8
movsd xmm1, qword [rsp + 0x40]
movsd xmm0, qword [rsp + 0x30]
ucomisd xmm1, xmm0
jp 0x14009122e
jne 0x14009122e
movaps xmm2, xmm10
cmp qword [rsp + 0x60], 1
lea r8, [rdi + 0x2ba0]
mov rbx, rsi
js 0x140091484
mov r13, qword [rsp + 0x190]
lea r9, [rbp*8]
mov r11, qword [rsp + 0x188]
mov r14, r10
sub r14, rbp
movabs r12, 0xbff0000000000000
sub r14, r13
neg rbp
mov rdx, rsi
test r15, r15
js 0x140091410
cmp r10, 4
jl 0x1400913b1
mov rdi, qword [rsp + 0x188]
lea r11, [r15 - 3]
lea r10, [r9 + rbp*8]
nop dword [rax + rax]
mov rax, qword [rdi + 0x48]
mov rcx, qword [r10 + rax]
mov rax, qword [r8]
movsd xmm0, qword [rcx + rdx*8]
mov rcx, qword [r9 + rax]
xorps xmm0, xmm6
movsd qword [rcx + rdx*8], xmm0
mov rax, qword [rdi + 0x48]
mov rcx, qword [r10 + rax]
mov rax, qword [r8]
movsd xmm0, qword [rcx + rdx*8]
mov rcx, qword [rax + rdx*8]
xorps xmm0, xmm6
movsd qword [r9 + rcx], xmm0
mov rax, qword [rdi + 0x48]
mov rcx, qword [r10 + rax]
mov rax, qword [r8]
movsd xmm0, qword [rcx + rdx*8 + 8]
mov rcx, qword [r9 + rax]
xorps xmm0, xmm6
movsd qword [rcx + rdx*8 + 8], xmm0
mov rax, qword [rdi + 0x48]
mov rcx, qword [r10 + rax]
mov rax, qword [r8]
movsd xmm0, qword [rcx + rdx*8 + 8]
mov rcx, qword [rax + rdx*8 + 8]
xorps xmm0, xmm6
movsd qword [r9 + rcx], xmm0
mov rax, qword [rdi + 0x48]
mov rcx, qword [r10 + rax]
mov rax, qword [r8]
movsd xmm0, qword [rcx + rdx*8 + 0x10]
mov rcx, qword [r9 + rax]
xorps xmm0, xmm6
movsd qword [rcx + rdx*8 + 0x10], xmm0
mov rax, qword [rdi + 0x48]
mov rcx, qword [r10 + rax]
mov rax, qword [r8]
movsd xmm0, qword [rcx + rdx*8 + 0x10]
mov rcx, qword [rax + rdx*8 + 0x10]
xorps xmm0, xmm6
movsd qword [r9 + rcx], xmm0
mov rax, qword [rdi + 0x48]
mov rcx, qword [r10 + rax]
mov rax, qword [r8]
movsd xmm0, qword [rcx + rdx*8 + 0x18]
mov rcx, qword [r9 + rax]
xorps xmm0, xmm6
movsd qword [rcx + rdx*8 + 0x18], xmm0
mov rax, qword [rdi + 0x48]
mov rcx, qword [r10 + rax]
mov rax, qword [r8]
movsd xmm0, qword [rcx + rdx*8 + 0x18]
mov rcx, qword [rax + rdx*8 + 0x18]
xorps xmm0, xmm6
add rdx, 4
movsd qword [r9 + rcx], xmm0
cmp rdx, r11
jle 0x1400912a0
mov rdi, qword [rsp + 0x1b0]
cmp rdx, r15
jg 0x140091400
lea r8, [rdi + 0x2ba0]
mov r11, qword [rsp + 0x188]
lea r10, [r9 + rbp*8]
mov rax, qword [r11 + 0x48]
mov rcx, qword [r10 + rax]
mov rax, qword [r8]
movsd xmm0, qword [rcx + rdx*8]
mov rcx, qword [r9 + rax]
xorps xmm0, xmm6
movsd qword [rcx + rdx*8], xmm0
mov rax, qword [r11 + 0x48]
mov rcx, qword [r10 + rax]
mov rax, qword [r8]
movsd xmm0, qword [rcx + rdx*8]
mov rcx, qword [rax + rdx*8]
xorps xmm0, xmm6
inc rdx
movsd qword [r9 + rcx], xmm0
cmp rdx, r15
jle 0x1400913bd
jmp 0x140091408
mov r11, qword [rsp + 0x188]
mov r10, qword [rsp + 0x160]
lea r8, [rdi + 0x2ba0]
cmp rbx, r13
jl 0x140091436
mov rax, qword [r8]
lea rdx, [r9 + r14*8]
mov rcx, qword [r9 + rax]
mov qword [rdx + rcx], r12
mov rax, qword [r8]
mov rcx, qword [rdx + rax]
mov qword [r9 + rcx], r12
mov rcx, qword [r11 + 0x48]
inc rbx
add rcx, r9
mov rax, qword [rcx + rbp*8]
movsd xmm0, qword [rax + r10*8]
mov rax, qword [rdi + 0x2be0]
xorps xmm0, xmm6
movsd qword [r9 + rax], xmm0
add r9, 8
mov rax, qword [rsp + 0x60]
dec rax
cmp rbx, rax
jle 0x140091272
mov r13, qword [rsp + 0x150]
mov r12, qword [rsp + 0x58]
mov r11, qword [rsp + 0x198]
movsd qword [rsp + 0x30], xmm7
mov r14, r8
movsd qword [rsp + 0x40], xmm8
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x40]
comisd xmm1, xmm0
jbe 0x14009159c
lea r11, [r12 - 1]
mov r10, rsi
mov qword [rsp + 0x198], r11
lea rax, [r12 + r12]
mov qword [rsp + 0x48], rax
test r11, r11
js 0x14009159c
cmp r12, 4
jl 0x14009156e
mov rbx, 0xffffffffffffffff
lea r9, [r12*8 + 0x18]
sub rbx, r12
mov rbp, r12
neg rbp
mov r14, 0xfffffffffffffffd
sub r14, r12
movaps xmm0, xmm2
inc r11
mulsd xmm0, xmm7
shr r11, 2
lea r10, [r11*4]
nop
mov rax, qword [r8]
lea rdx, [r9 + r14*8]
lea r9, [r9 + 0x20]
mov rcx, qword [rax + r9 - 0x38]
movsd qword [rdx + rcx], xmm0
mov rax, qword [r8]
mov rcx, qword [rax + r9 - 0x30]
movsd qword [rcx + rdx + 8], xmm0
mov rax, qword [r8]
mov rcx, qword [rax + r9 - 0x28]
lea rax, [rcx + rbx*8]
movsd qword [rax + r9 - 0x20], xmm0
mov rax, qword [r8]
mov rcx, qword [rax + r9 - 0x20]
lea rax, [rcx + rbp*8]
movsd qword [rax + r9 - 0x20], xmm0
sub r11, 1
jne 0x140091510
mov r11, qword [rsp + 0x198]
lea r14, [rdi + 0x2ba0]
cmp r10, r11
jg 0x14009159c
mulsd xmm2, xmm7
mov rax, qword [r14]
lea rcx, [rax + r10*8]
mov rax, qword [rcx + r12*8]
movsd qword [rax + r10*8], xmm2
inc r10
cmp r10, r11
jle 0x140091577
lea r14, [rdi + 0x2ba0]
mov rbp, rsi
jmp 0x1400915b0
mov rbp, rsi
test r11, r11
js 0x1400915fd
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [r14]
mov r9d, 1
mov r8, qword [rdi + 0x2c60]
mov edx, r9d
mov rbx, qword [rdi + 0x2be0]
mov qword [rsp + 0x20], r12
mov rcx, qword [rcx + rbp*8]
call fcn.14003ed50
movsd xmm5, qword [rbx + rbp*8]
mov r11, qword [rsp + 0x198]
subsd xmm5, xmm0
movsd qword [rbx + rbp*8], xmm5
inc rbp
cmp rbp, r11
jle 0x1400915b0
lea r14, [rdi + 0x2ba0]
mov rbp, qword [rsp + 0x68]
mov r8, rsi
test rbp, rbp
js 0x1400917f2
mov r13, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x160]
mov r15, qword [rsp + 0x1a0]
mov r12, qword [rsp + 0x180]
nop dword [rax + rax]
xor cl, cl
cmp r8, rbx
jge 0x1400916e8
mov rax, qword [rsp + 0x170]
mov rax, qword [rax + 0x38]
cmp byte [r8 + rax], cl
je 0x14009168f
mov rax, qword [r15 + 0x38]
movsd xmm0, qword [rax + r8*8]
mov rax, qword [rsp + 0x168]
movsd qword [rsp + 0x198], xmm0
mov rax, qword [rax + 0x38]
movsd xmm1, qword [rax + r8*8]
movsd qword [rsp + 0x30], xmm1
movsd xmm2, qword [rsp + 0x198]
movsd xmm0, qword [rsp + 0x30]
ucomisd xmm2, xmm0
jp 0x14009168f
je 0x1400916dc
mov rax, qword [r12 + 0x38]
cmp byte [r8 + rax], cl
je 0x1400916de
mov rax, qword [r15 + 0x38]
movsd xmm0, qword [rax + r8*8]
mov rax, qword [rsp + 0x178]
movsd qword [rsp + 0x198], xmm0
mov rax, qword [rax + 0x38]
movsd xmm1, qword [rax + r8*8]
movsd qword [rsp + 0x30], xmm1
movsd xmm2, qword [rsp + 0x198]
movsd xmm0, qword [rsp + 0x30]
ucomisd xmm2, xmm0
jp 0x1400916de
jne 0x1400916de
mov cl, 1
test cl, cl
je 0x1400917c0
jmp 0x140091721
mov rax, qword [r15 + 0x38]
movsd xmm0, qword [rax + r8*8]
movsd qword [rsp + 0x198], xmm0
movsd qword [rsp + 0x30], xmm8
movsd xmm1, qword [rsp + 0x198]
movsd xmm0, qword [rsp + 0x30]
ucomisd xmm1, xmm0
jp 0x1400917c0
jne 0x1400917c0
lea r9, [r13 - 1]
mov rdx, rsi
test r9, r9
js 0x1400917a7
cmp r13, 4
jl 0x140091790
lea r10, [r9 - 3]
nop word [rax + rax]
mov rax, qword [rdi + 0x2ba0]
mov rcx, qword [rax + rdx*8]
mov qword [rcx + r8*8], rsi
mov rax, qword [rdi + 0x2ba0]
mov rcx, qword [rax + rdx*8 + 8]
mov qword [rcx + r8*8], rsi
mov rax, qword [rdi + 0x2ba0]
mov rcx, qword [rax + rdx*8 + 0x10]
mov qword [rcx + r8*8], rsi
mov rax, qword [rdi + 0x2ba0]
mov rcx, qword [rax + rdx*8 + 0x18]
add rdx, 4
mov qword [rcx + r8*8], rsi
cmp rdx, r10
jle 0x140091740
cmp rdx, r9
jg 0x1400917a7
nop dword [rax]
mov rax, qword [rdi + 0x2ba0]
mov rcx, qword [rax + rdx*8]
inc rdx
mov qword [rcx + r8*8], rsi
cmp rdx, r9
jle 0x140091790
mov rax, qword [rdi + 0x2ba0]
mov rcx, qword [rax + r8*8]
movabs rax, 0xbff0000000000000
mov qword [rcx + r8*8], rax
inc r8
cmp r8, rbp
jle 0x140091630
mov r15, qword [rsp + 0x70]
lea r14, [rdi + 0x2ba0]
mov r12, qword [rsp + 0x58]
mov qword [rsp + 0x48], r13
mov r13, qword [rsp + 0x150]
mov qword [rsp + 0x198], r11
mov rbx, qword [rsp + 0x48]
mov r8, rsi
lea r9, [rbx - 1]
test r9, r9
js 0x1400918a2
cmp rbx, 4
jl 0x14009187f
lea r10, [r9 - 3]
mov rax, qword [r14]
mov rdx, qword [rdi + 0x2be0]
mov rcx, qword [rax + r8*8]
mov rax, qword [rdx + r8*8]
mov qword [rcx + r12*8], rax
mov rax, qword [r14]
mov rdx, qword [rdi + 0x2be0]
mov rcx, qword [rax + r8*8 + 8]
mov rax, qword [rdx + r8*8 + 8]
mov qword [rcx + r12*8], rax
mov rax, qword [r14]
mov rdx, qword [rdi + 0x2be0]
mov rcx, qword [rax + r8*8 + 0x10]
mov rax, qword [rdx + r8*8 + 0x10]
mov qword [rcx + r12*8], rax
mov rax, qword [r14]
mov rdx, qword [rdi + 0x2be0]
mov rcx, qword [rax + r8*8 + 0x18]
mov rax, qword [rdx + r8*8 + 0x18]
add r8, 4
mov qword [rcx + r12*8], rax
cmp r8, r10
jle 0x140091811
lea r14, [rdi + 0x2ba0]
cmp r8, r9
jg 0x1400918a2
mov rax, qword [r14]
mov rdx, qword [rdi + 0x2be0]
mov rcx, qword [rax + r8*8]
mov rax, qword [rdx + r8*8]
inc r8
mov qword [rcx + r12*8], rax
cmp r8, r9
jle 0x140091884
mov r14, qword [rsp + 0x50]
lea r9, [rdi + 0x2be8]
mov rbp, qword [rsp + 0x1b8]
lea r8, [r12 + 1]
mov rcx, r14
mov qword [rsp + 0x20], rbp
mov rdx, rbx
call fcn.14004b470
mov rdx, r12
mov qword [rsp + 0x20], rbp
mov rcx, r14
call fcn.140065950
movsd qword [rsp + 0x30], xmm0
movsd qword [rsp + 0x40], xmm13
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x40]
comisd xmm0, xmm1
jb 0x14009194b
mov r11, qword [rsp + 0x198]
mulsd xmm7, xmm12
movsd qword [rsp + 0x30], xmm7
movsd qword [rsp + 0x40], xmm8
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x40]
ucomisd xmm1, xmm0
jp 0x140091939
jne 0x140091939
movaps xmm7, xmm11
mov qword [rsp + 0x198], r11
mov qword [rsp + 0x48], rbx
mov r10, qword [rsp + 0x160]
mov rbp, qword [rsp + 0x38]
jmp 0x140091083
test r12, r12
jle 0x140091a63
lea r15, [r12*8]
mov rbp, rsi
lea rbx, [r12 - 1]
mov r14, r12
lea r9, [r12*8 - 8]
nop
mov r10, qword [rdi + 0x2ba0]
mov r11, r12
mov rax, qword [r9 + r10]
movsd xmm2, qword [r15 + rax]
cmp r12, rbx
jg 0x140091a31
mov r10, qword [r10 + r9]
mov r8, qword [rdi + 0x2ca0]
cmp rbp, 4
jl 0x140091a09
mov rdx, rbx
lea rax, [r9 + 0x10]
sub rdx, r12
mov rcx, r8
sub rdx, 3
add rax, r10
shr rdx, 2
sub rcx, r10
inc rdx
lea r11, [r12 + rdx*4]
movsd xmm0, qword [rax + rcx - 8]
mulsd xmm0, qword [rax - 8]
movsd xmm1, qword [rax]
mulsd xmm1, qword [rax + rcx]
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx + 8]
mulsd xmm0, qword [rax + 8]
subsd xmm2, xmm1
movsd xmm1, qword [rax + rcx + 0x10]
mulsd xmm1, qword [rax + 0x10]
add rax, 0x20
subsd xmm2, xmm0
subsd xmm2, xmm1
sub rdx, 1
jne 0x1400919c0
cmp r11, rbx
jg 0x140091a31
mov rcx, rbx
lea rax, [r10 + r11*8]
sub rcx, r11
sub r8, r10
inc rcx
movsd xmm0, qword [rax + r8]
mulsd xmm0, qword [rax]
add rax, 8
subsd xmm2, xmm0
sub rcx, 1
jne 0x140091a19
mov rax, qword [rdi + 0x2ba0]
dec r12
inc rbp
mov rcx, qword [r9 + rax]
mov rax, qword [rdi + 0x2ca0]
divsd xmm2, qword [rcx + r9]
movsd qword [r9 + rax], xmm2
sub r9, 8
sub r14, 1
jne 0x140091970
mov rax, qword [rsp + 0x60]
lea r9, [rax - 1]
test r9, r9
js 0x140091bbb
mov r14, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x1a8]
cmp rax, 4
jl 0x140091b77
mov r11, r14
lea r10, [r9 + 1]
mov rbp, 0xffffffffffffffff
lea r8, [r14*8 + 0x18]
sub rbp, r14
mov rax, 0xfffffffffffffffd
sub rax, r14
neg r11
shr r10, 2
mov r14, rax
lea rsi, [r10*4]
mov rax, qword [rdi + 0x2ca0]
lea rdx, [r8 + r14*8]
mov rcx, qword [rdi + 0x2c60]
movsd xmm0, qword [r8 + rax - 0x18]
addsd xmm0, qword [r8 + rcx - 0x18]
mov rax, qword [rbx + 0x38]
movsd qword [rdx + rax], xmm0
mov rax, qword [rdi + 0x2ca0]
mov rcx, qword [rdi + 0x2c60]
movsd xmm0, qword [r8 + rax - 0x10]
addsd xmm0, qword [r8 + rcx - 0x10]
mov rax, qword [rbx + 0x38]
movsd qword [rdx + rax + 8], xmm0
mov rax, qword [rdi + 0x2c60]
mov rcx, qword [rdi + 0x2ca0]
movsd xmm0, qword [r8 + rax - 8]
addsd xmm0, qword [r8 + rcx - 8]
mov rcx, qword [rbx + 0x38]
add rcx, r8
movsd qword [rcx + rbp*8], xmm0
mov rcx, qword [rdi + 0x2ca0]
mov rax, qword [rdi + 0x2c60]
movsd xmm0, qword [r8 + rax]
addsd xmm0, qword [r8 + rcx]
mov rcx, qword [rbx + 0x38]
add rcx, r8
add r8, 0x20
movsd qword [rcx + r11*8], xmm0
sub r10, 1
jne 0x140091ac1
mov r14, qword [rsp + 0x38]
cmp rsi, r9
jg 0x140091bbb
lea rax, [rsi + r14]
sub r9, rsi
neg r14
lea rdx, [rax*8]
inc r9
mov rcx, qword [rdi + 0x2c60]
mov rax, qword [rdi + 0x2ca0]
movsd xmm0, qword [rdx + rax]
addsd xmm0, qword [rdx + rcx]
mov rcx, qword [rbx + 0x38]
add rcx, rdx
add rdx, 8
movsd qword [rcx + r14*8], xmm0
sub r9, 1
jne 0x140091b8c
lea r11, [rsp + 0x108]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x78]
movaps xmm13, xmmword [r11 - 0x88]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret