Function at 0x1404c9380
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x158
mov rbx, rcx
mov rax, qword [rsp + 0x1c0]
mov rcx, qword [0x140682ee8]
xor rcx, rsp
mov qword [rsp + 0x150], rcx
xor esi, esi
cmp rax, 0x1c
jb 0x1404c9a2c
mov rdi, r9
mov r14, rdx
mov rax, qword [rsp + 0x1d0]
cmp rax, 0x20
mov r15d, 0x20
cmovb r15, rax
mov dword [rsp + 0x38], 0xfab904ef
mov dword [rsp + 0x30], 0x37bc03b1
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x110]
mov ecx, 1
mov rdx, rbx
mov r8, rdi
call fcn.1404c9a60
test eax, eax
js 0x1404c9a2c
mov r12, qword [rsp + 0x1c8]
mov byte [rsp + 0x4b], 4
mov dword [rsp + 0x4c], 0x1000000
xorps xmm0, xmm0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0xc0], 0
mov dword [rsp + 0x30], 0x9d85db14
mov dword [rsp + 0x28], 0x2323acfd
mov qword [rsp + 0x20], 0
xor ebp, ebp
lea rsi, [rsp + 0x50]
xor ecx, ecx
xor edx, edx
mov r8, rsi
xor r9d, r9d
call fcn.1404c9d00
mov dword [rsp + 0x30], 0x9d85db14
mov dword [rsp + 0x28], 0x2323acfd
mov qword [rsp + 0x20], 1
lea r9, [rsp + 0x4b]
xor ecx, ecx
mov edx, 1
mov r8, rsi
call fcn.1404c9d00
nop dword [rax + rax]
mov eax, dword [0x140698de0]
cmp eax, 0x26
jg 0x1404c94e0
test bpl, bpl
je 0x1404c94f3
mov eax, dword [0x140698ddc]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1404c94d0
jmp 0x1404c94db
mov rax, qword [0x140686428]
movsxd rbp, dword [rax]
mov r13, rbp
xor r13, rax
and rbp, rax
mov esi, dword [0x1405648e4]
mov dword [rsp + 0x30], 0x9d85db14
mov dword [rsp + 0x28], 0x2323acfd
mov qword [rsp + 0x20], 0x38
lea r8, [rsp + 0x50]
lea r9, [rsp + 0x110]
xor ecx, ecx
mov edx, 1
call fcn.1404c9d00
mov rax, qword [rsp + 0x1d8]
test rax, rax
je 0x1404c958c
xorps xmm0, xmm0
movups xmmword [rax + 0x2c], xmm0
movups xmmword [rax + 0x1c], xmm0
mov dword [rax + 0x3c], 0
movaps xmm0, xmmword [rsp + 0x110]
movups xmmword [rax], xmm0
movups xmm0, xmmword [rsp + 0x11c]
movups xmmword [rax + 0xc], xmm0
movups xmm0, xmmword [rsp + 0x12c]
movups xmm1, xmmword [rsp + 0x138]
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x2c], xmm1
lea r13, [r13 + rbp*2]
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0xc]
movups xmmword [rsp + 0x11c], xmm1
movaps xmmword [rsp + 0x110], xmm0
movdqu xmm0, xmmword [r14 + 0x20]
movdqu xmm1, xmmword [r14 + 0x2c]
movdqu xmmword [rsp + 0x12c], xmm0
movdqu xmmword [rsp + 0x138], xmm1
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x38], 0xfab904ef
mov dword [rsp + 0x30], 0x37bc03b1
mov dword [rsp + 0x28], 0
lea r9, [rsp + 0x110]
xor ecx, ecx
mov rdx, rbx
mov r8, rdi
call fcn.1404c9a60
mov ecx, eax
mov ebx, dword [0x140686424]
mov eax, dword [0x140698de0]
cmp eax, 0x57
jge 0x1404c9640
mov eax, dword [0x1406864e8]
add eax, ebx
add eax, 0xbcb37825
mov dword [0x140686424], eax
mov edx, dword [0x140698ddc]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x1404c96c4
lea rax, [fcn.1404c9380]
lea edx, [rax + rax]
add edx, 0x2b20
mov eax, edx
not eax
and eax, edx
nop word cs:[rax + rax]
mov edx, dword [0x1406864e8]
mov r8d, edx
sub r8d, ebx
add r8d, 0xbcb37825
lea r9d, [rdx + r8]
add r9d, 0xbcb37824
add edx, 0xbcb37824
not r8d
xor r9d, r8d
mov r10d, r9d
not r10d
and r10d, r8d
lea r9d, [r9 + r10*2]
mov r10d, r9d
neg r10d
mov r11d, r10d
xor r11d, r8d
and r10d, r8d
lea r8d, [r11 + r10*2]
sub r9d, r8d
imul r9d, r8d
add r9d, r8d
mov dword [0x140686424], r9d
cmp eax, edx
jne 0x1404c9660
jmp 0x1404c9615
not eax
mov ebp, eax
xor ebp, eax
not ebp
and ebp, ebx
xor ebp, eax
test ebp, ebx
je 0x1404c96d9
xor r14d, r14d
jmp 0x1404c96e5
xor edx, edx
mov r14d, 0
test esi, esi
jg 0x1404c96f4
xor eax, eax
test al, al
jne 0x1404c9993
jmp 0x1404c9982
mov al, 1
xor r14d, r14d
jmp 0x1404c972a
movsxd rdx, edx
xor r14b, byte [r13 + rdx]
mov r8d, 0x434c87db
sub r8d, dword [0x1406864e8]
neg edx
mov r9d, edx
xor r9d, r8d
and edx, r8d
lea edx, [r9 + rdx*2]
neg edx
cmp edx, esi
jge 0x1404c96e5
cmp byte [0x140694594], 0
cmp dword [0x1406864e8], 0x434c87dc
je 0x1404c9700
nop dword [rax]
test al, al
je 0x1404c9740
jmp 0x1404c9731
mov eax, dword [0x1406864e8]
lea ecx, [rax - 0x434c87dc]
lea edx, [rax - 0x434c87db]
movabs r8, 0x9ca9da9a67fbb056
add r8, qword [0x1406864f0]
lea r9d, [rax - 0x2028dadf]
add eax, 0x5a395338
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], r9d
mov qword [rsp + 0x20], r8
lea rdi, [rsp + 0x50]
lea r9, [rsp + 0xf0]
mov r8, rdi
call fcn.1404c9d00
mov dword [rsp + 0x30], 0x9d85db14
mov dword [rsp + 0x28], 0x2323acfd
mov qword [rsp + 0x20], 4
mov esi, 1
lea r9, [rsp + 0x4c]
xor ecx, ecx
mov edx, 1
mov r8, rdi
call fcn.1404c9d00
mov dword [rsp + 0x30], 0x9d85db14
mov dword [rsp + 0x28], 0x2323acfd
mov qword [rsp + 0x20], 0
lea r8, [rsp + 0xd0]
mov ecx, 1
xor edx, edx
mov r9, rdi
call fcn.1404c9d00
test r15, r15
je 0x1404c99cb
cmp r15, 8
jae 0x1404c980d
xor eax, eax
jmp 0x1404c9879
cmp r15, 0x10
jae 0x1404c98a6
xor eax, eax
mov rcx, rax
mov rax, r15
not rax
mov rdx, r15
xor rdx, 0x38
and rax, 0xffffffffffffffc7
or rax, rdx
mov rdx, 0xfffffffffffffff7
sub rdx, rax
not rax
nop dword [rax]
movq xmm0, qword [rsp + rcx + 0xd0]
movq xmm1, qword [r12 + rcx]
movdqa xmm2, xmm1
pandn xmm2, xmm0
pandn xmm0, xmm1
por xmm0, xmm2
movq qword [r12 + rcx], xmm0
cmp rdx, rcx
je 0x1404c9870
add rcx, 8
jmp 0x1404c9840
cmp r15, rax
je 0x1404c99cb
dec r15
nop dword [rax]
movzx ecx, byte [rsp + rax + 0xd0]
mov edx, ecx
xor dl, cl
not dl
and dl, byte [r12 + rax]
xor dl, cl
mov byte [r12 + rax], dl
cmp r15, rax
je 0x1404c99cb
inc rax
jmp 0x1404c9880
mov eax, r15d
and eax, 0x30
lea rcx, [rax - 0x10]
xor edx, edx
pcmpeqd xmm0, xmm0
nop word cs:[rax + rax]
movdqa xmm1, xmmword [rsp + rdx + 0xd0]
movdqu xmm2, xmmword [r12 + rdx]
movdqa xmm3, xmm1
pxor xmm3, xmm0
pandn xmm1, xmm2
por xmm3, xmm2
pxor xmm3, xmm0
por xmm3, xmm1
movdqu xmmword [r12 + rdx], xmm3
cmp rcx, rdx
je 0x1404c98f8
add rdx, 0x10
jmp 0x1404c98c0
cmp r15, rax
je 0x1404c99cb
mov edx, r15d
and edx, 8
mov rcx, rdx
shr rcx, 3
test rdx, rdx
sete r8b
movzx r9d, byte [0x140694f94]
mov edx, r9d
xor dl, 1
mov r10d, r9d
xor r10b, r8b
and r9b, cl
xor cl, dl
not cl
and cl, dl
or cl, r10b
mov r10d, ecx
xor r10b, 1
and dl, r8b
or dl, r9b
mov r8d, edx
xor r8b, 1
mov r9d, ecx
and r9b, r8b
and r8b, r10b
xor r10b, dl
or r9b, r10b
xor r9b, 1
and dl, cl
or r8b, dl
mov ecx, r9d
and cl, r8b
test cl, 1
jne 0x1404c9879
xor r9b, r8b
test r9b, 1
je 0x1404c9819
jmp 0x1404c9879
mov eax, dword [0x140698ddc]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
je 0x1404c99c1
mov r8d, 0xbcb37826
nop dword [rax]
mov edx, dword [0x140698ddc]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x1406864e8]
add r9d, r8d
xor edx, edx
div r9d
test edx, edx
jne 0x1404c99a0
jmp 0x1404c9982
test ecx, ecx
jne 0x1404c9746
xor esi, esi
movzx eax, byte [0x1405648f4]
mov ecx, dword [0x140698ddc]
nop dword [rax + rax]
test ebp, ebx
setne cl
mov edx, dword [0x140698de0]
cmp edx, 0x19
jg 0x1404c99e0
neg cl
add al, 0xcc
mov edx, eax
xor dl, 0xb6
and al, 0x36
add al, al
add al, dl
sub al, r14b
add al, 0x7e
not al
mov edx, ecx
xor dl, al
and dl, cl
or dl, al
not dl
movzx eax, byte [0x1406864f8]
add al, 0x92
cmp dl, al
setne al
or al, byte [0x140694f94]
and al, 1
mov byte [0x140694f94], al
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.1404e9d20
mov eax, esi
add rsp, 0x158
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret