Function at 0x14007c380
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x228
movaps xmmword [rsp + 0x210], xmm11
movaps xmmword [rsp + 0x200], xmm10
movaps xmmword [rsp + 0x1f0], xmm9
movaps xmmword [rsp + 0x1e0], xmm8
movaps xmmword [rsp + 0x1d0], xmm7
movaps xmmword [rsp + 0x1c0], xmm6
mov ebp, r9d
mov rsi, rdx
mov r12, rcx
mov r15, qword [rsp + 0x2c8]
mov r13, qword [rsp + 0x298]
mov rax, qword [0x1406a7e00]
xor rax, rsp
mov qword [rsp + 0x1b8], rax
mov edi, dword [r8 + 8]
mov qword [rsp + 0x78], r8
mov rax, qword [r8]
movzx ebx, byte [rax + 0x93]
lea rax, str.SurfaceDrawContext_ConvolveGaussian2d
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], 0x25
lea r14, [rsp + 0x140]
mov rcx, r14
call fcn.14001e590
mov eax, dword [r13 + 0xc]
sub eax, dword [r13 + 4]
mov ecx, dword [r13 + 8]
sub ecx, dword [r13]
shl rax, 0x20
or rcx, rax
mov rax, qword [r15]
mov qword [r15], 0
mov qword [rsp + 0x120], rax
mov dword [rsp + 0x58], edi
mov byte [rsp + 0x50], bl
lea rax, [rsp + 0x128]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], rcx
mov eax, dword [rsp + 0x2d0]
mov dword [rsp + 0x20], eax
mov byte [rsp + 0x60], 1
mov byte [rsp + 0x48], 0
mov dword [rsp + 0x40], 1
lea rcx, [rsp + 0x138]
lea r9, [rsp + 0x120]
mov qword [rsp + 0x90], rsi
mov rdx, rsi
mov r8d, ebp
call fcn.140080570
cmp qword [rsp + 0x138], 0
je 0x14007c653
mov ecx, dword [rsp + 0x2a8]
mov eax, dword [rsp + 0x2a0]
lea ebp, [rcx + rcx]
inc ebp
lea r8d, [rax + rax]
inc r8d
mov rdx, rbp
shl rdx, 0x20
add rdx, r8
mov qword [rsp + 0x118], rdx
shl rcx, 0x20
mov edx, eax
or rdx, rcx
mov qword [rsp + 0x110], rdx
xorps xmm0, xmm0
movaps xmmword [rsp + 0xe0], xmm0
mov qword [rsp + 0xf0], 0
mov byte [rsp + 0xf8], 1
movups xmm0, xmmword [0x1405a2344]
movups xmmword [rsp + 0xfc], xmm0
cmp dword [rsp + 0x2c0], 4
jae 0x14007c962
mov qword [rsp + 0x88], r12
movss xmm6, dword [0x1406908dc]
test r8d, r8d
mov qword [rsp + 0x80], r8
jle 0x14007c665
movss xmm0, dword [rsp + 0x2b8]
movss xmm1, dword [rsp + 0x2b0]
add eax, eax
mulss xmm1, xmm1
addss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm0
movaps xmm7, xmm6
divss xmm7, xmm1
movaps xmm8, xmm6
divss xmm8, xmm0
mov ecx, r8d
shr ecx, 0x1f
add ecx, r8d
sar ecx, 1
neg ecx
mov qword [rsp + 0x98], rcx
mov ecx, ebp
shr ecx, 0x1f
add ecx, ebp
sar ecx, 1
neg ecx
mov dword [rsp + 0x74], ecx
mov r14d, r8d
mov eax, eax
lea r13, [rax*4 + 4]
xorps xmm9, xmm9
xor ebx, ebx
movaps xmm10, xmmword [0x140599730]
lea r15, [rsp + 0x140]
jmp 0x14007c5ec
inc rbx
add r15, 4
cmp rbx, r14
je 0x14007c669
test ebp, ebp
jle 0x14007c5e0
mov rax, qword [rsp + 0x98]
add eax, ebx
xorps xmm11, xmm11
cvtsi2ss xmm11, eax
mulss xmm11, xmm11
mulss xmm11, xmm7
mov esi, dword [rsp + 0x74]
mov rdi, r15
mov r12, rbp
nop word [rax + rax]
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
mulss xmm0, xmm0
mulss xmm0, xmm8
addss xmm0, xmm11
xorps xmm0, xmm10
call fcn.140574c10
movss dword [rdi], xmm0
addss xmm9, xmm0
add rdi, r13
inc esi
dec r12
jne 0x14007c620
jmp 0x14007c5e0
mov qword [r12], 0
mov rdi, qword [rsp + 0x78]
jmp 0x14007c8dd
xorps xmm9, xmm9
mov r15, qword [rsp + 0x290]
mov rcx, qword [rsp + 0x80]
imul ecx, ebp
test ecx, ecx
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x298]
jle 0x14007c6fe
divss xmm6, xmm9
mov eax, ecx
cmp ecx, 7
ja 0x14007c69d
xor ecx, ecx
jmp 0x14007c6e0
mov ecx, eax
and ecx, 0xfffffff8
movaps xmm0, xmm6
shufps xmm0, xmm6, 0
xor edx, edx
nop dword [rax + rax]
movaps xmm1, xmmword [rsp + rdx*4 + 0x140]
mulps xmm1, xmm0
movaps xmm2, xmmword [rsp + rdx*4 + 0x150]
mulps xmm2, xmm0
movaps xmmword [rsp + rdx*4 + 0x140], xmm1
movaps xmmword [rsp + rdx*4 + 0x150], xmm2
add rdx, 8
cmp rcx, rdx
jne 0x14007c6b0
nop
movss xmm0, dword [rsp + rcx*4 + 0x140]
mulss xmm0, xmm6
movss dword [rsp + rcx*4 + 0x140], xmm0
inc rcx
cmp rax, rcx
jne 0x14007c6e0
mov rcx, qword [rsp + 0x138]
call fcn.140132950
mov rcx, qword [rdi]
mov qword [rdi], 0
mov qword [rsp + 0xc8], rcx
mov ecx, dword [rdi + 8]
mov dword [rsp + 0xd0], ecx
movzx ecx, word [rdi + 0xc]
mov word [rsp + 0xd4], cx
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x2c0]
mov byte [rsp + 0x48], al
lea rax, [rsp + 0x110]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x140]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x118]
mov qword [rsp + 0x20], rax
mov byte [rsp + 0x50], 1
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0x3f800000
lea rcx, [rsp + 0xd8]
lea r8, [rsp + 0xc8]
mov rdx, qword [rsp + 0x90]
mov r9, r15
call fcn.14013b6f0
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0xd8], 0
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0xe8], rax
test rcx, rcx
je 0x14007c7d2
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov byte [rsp + 0xf8], 0
lea rbx, [rsp + 0xe0]
mov rcx, rbx
mov edx, 1
call fcn.14013bad0
mov r14, qword [rsp + 0x138]
movups xmm0, xmmword [rsi]
cvtdq2ps xmm1, xmm0
movaps xmmword [rsp + 0xb0], xmm1
xorps xmm1, xmm1
pshufd xmm2, xmm0, 0xee
psubd xmm2, xmm0
cvtdq2ps xmm0, xmm2
movlhps xmm1, xmm0
movups xmmword [rsp + 0xa0], xmm1
call fcn.140024370
lea rcx, [rsp + 0xb0]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0xa0]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov rcx, r14
xor edx, edx
mov r8, rbx
xor r9d, r9d
call fcn.140080eb0
mov rax, qword [rsp + 0x138]
mov qword [rsp + 0x138], 0
mov r12, qword [rsp + 0x88]
mov qword [r12], rax
mov rcx, qword [rsp + 0xd8]
test rcx, rcx
mov r15, qword [rsp + 0x2c8]
je 0x14007c892
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov rcx, qword [rsp + 0xf0]
test rcx, rcx
je 0x14007c8a9
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov rcx, qword [rsp + 0xe8]
test rcx, rcx
je 0x14007c8c0
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov rbx, qword [rsp + 0x138]
test rbx, rbx
je 0x14007c8dd
mov rcx, rbx
call fcn.140080a10
mov rcx, rbx
call fcn.1405602d0
mov rcx, qword [rdi]
test rcx, rcx
je 0x14007c8f5
lock dec dword [rcx + 8]
jne 0x14007c8f5
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov rcx, qword [r15]
test rcx, rcx
je 0x14007c907
lock dec dword [rcx]
jne 0x14007c907
call fcn.1405602d0
mov rcx, qword [rsp + 0x1b8]
xor rcx, rsp
call fcn.1405602f0
mov rax, r12
movaps xmm6, xmmword [rsp + 0x1c0]
movaps xmm7, xmmword [rsp + 0x1d0]
movaps xmm8, xmmword [rsp + 0x1e0]
movaps xmm9, xmmword [rsp + 0x1f0]
movaps xmm10, xmmword [rsp + 0x200]
movaps xmm11, xmmword [rsp + 0x210]
add rsp, 0x228
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2