Function at 0x18000bd50
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov ebx, dword [rsp + 0xc0]
mov r15, rdx
mov edx, dword [rsp + 0xc0]
mov rdi, r9
mov r10, r8
mov r14, rcx
lea eax, [rdx + 6]
mov dword [rsp + 0x40], eax
cmp edx, eax
jae case.0x18000bdd6.269
mov r12d, dword [rsp + 0xc0]
mov r13d, dword [rsp + 0x20]
mov rsi, qword [rsp + 0xb8]
mov dword [rsp + 0x38], ebx
lea eax, [rdx - 0x10b]
lea r8, [0x180000000]
cmp eax, 8
ja case.0x18000bdd6.270
mov ecx, dword [r8 + rax*4 + 0xc35c]
add rcx, r8
jmp rcx
mov rax, qword [rsp + 0xb0]
xor r8d, r8d
mov r11d, dword [r10]
mov ebp, dword [rsp + 0x2c]
dec r11d
mov r9d, ebp
cmp r11d, dword [rax]
jl case.0x18000bdd6.270
nop dword [rax]
shr ebp, 1
je 0x18000be38
mov rsi, qword [rsp + 0xb8]
mov r10d, ebp
nop
lea eax, [r8 + 1]
mov rdx, qword [rsi + rax*8]
add rdx, qword [rsi + r8*8]
add r8d, 2
mov eax, r9d
inc r9d
mov qword [rsi + rax*8], rdx
sub r10, 1
jne 0x18000be10
mov rax, qword [rsp + 0xb0]
dec r11d
cmp r11d, dword [rax]
jge 0x18000be00
mov rsi, qword [rsp + 0xb8]
mov dword [rsp + 0x2c], ebp
jmp 0x18000c31a
mov eax, dword [r15]
add eax, dword [rdi]
mov ecx, dword [r10]
shr eax, cl
mov dword [rsp + 0x28], eax
jmp case.0x18000bdd6.270
mov ebp, dword [rsp + 0x24]
test ebp, ebp
je 0x18000bf16
mov ebx, 0x118
mov eax, ebx
sub eax, 0x116
je 0x18000beeb
sub eax, 1
je 0x18000bee5
cmp eax, 1
jne 0x18000bef4
mov r9, r14
mov dword [rsp + 0x38], 8
lea r8, [rsp + 0x38]
lea edx, [rax + 0x3a]
lea rcx, [rsp + 0x20]
call fcn.18000aa50
test eax, eax
je 0x18000c33d
test r15, r15
je 0x18000bebf
mov ecx, dword [rdi]
movzx eax, byte [rsp + 0x20]
mov byte [rcx + r15], al
inc dword [rdi]
mov r13d, dword [rsp + 0x20]
mov eax, r13d
and al, 0xc0
cmp al, 0x80
je 0x18000bef4
mov rax, qword [rsp + 0xb8]
mov dword [rax], 0xffffffff
mov eax, 1
jmp 0x18000c343
shl r12d, 6
jmp 0x18000bef4
mov eax, r13d
and eax, 0x3f
or r12d, eax
dec ebx
cmp ebx, 0x115
ja 0x18000be75
add ebp, 0xffffffff
mov dword [rsp + 0x24], ebp
jne 0x18000be70
mov edx, dword [rsp + 0xc0]
mov ebx, 1
mov dword [rsi], r12d
mov dword [rsp + 0x38], ebx
jmp case.0x18000bdd6.270
mov ecx, dword [r10]
mov ebp, 1
mov r13d, dword [0x18009d1d0]
mov edx, 0x66
mov ebx, dword [rsp + 0x48]
shl ebp, cl
mov dword [rsp + 0x2c], ebp
mov dword [rsp + 0x30], edx
nop dword [rax]
cmp edx, 0x66
jne 0x18000c1fa
mov eax, 0xfc
nop
cmp eax, 0xfc
je 0x18000bf7a
add eax, 0xfc0
cmp eax, 0x1f80
jbe 0x18000bf60
mov r10d, dword [rsp + 0x28]
jmp 0x18000bf83
mov r10d, dword [rsp + 0x28]
bsr ebx, r10d
mov rax, qword [rsp + 0xc8]
mov ecx, 0x20
mov r9d, dword [rdi]
sub ecx, ebx
neg r9d
mov eax, dword [rax]
add eax, 4
cmp eax, ecx
jae 0x18000c0c7
xor ecx, ecx
test ebp, ebp
je 0x18000c1fa
mov r15, qword [rsp + 0xb8]
nop word [rax + rax]
add r9d, r10d
xor esi, esi
mov eax, r9d
sub eax, ecx
cmp ecx, r9d
jae 0x18000c043
cmp eax, 8
jb 0x18000c043
cmp r13d, 2
jl 0x18000c043
and eax, 7
mov r8d, r9d
sub r8d, eax
xorps xmm2, xmm2
xorps xmm3, xmm3
nop dword [rax]
movdqu xmm0, xmmword [r14 + rcx*4]
lea eax, [rcx + 4]
add ecx, 8
pabsd xmm1, xmm0
paddd xmm1, xmm2
movdqa xmm2, xmm1
movdqu xmm0, xmmword [r14 + rax*4]
pabsd xmm1, xmm0
paddd xmm1, xmm3
movdqa xmm3, xmm1
cmp ecx, r8d
jb 0x18000bff0
paddd xmm2, xmm1
movdqa xmm0, xmm2
psrldq xmm0, 8
paddd xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 4
paddd xmm2, xmm0
movd esi, xmm2
xor r11d, r11d
xor edi, edi
cmp ecx, r9d
jae 0x18000c0af
mov eax, r9d
mov r8d, ecx
sub eax, ecx
cmp eax, 2
jb 0x18000c097
mov eax, r9d
sub eax, ecx
sub eax, 2
shr eax, 1
inc eax
mov r10d, eax
lea ecx, [rcx + rax*2]
nop dword [rax]
mov eax, dword [r14 + r8*4]
cdq
xor eax, edx
sub eax, edx
add r11d, eax
mov eax, dword [r14 + r8*4 + 4]
cdq
add r8, 2
xor eax, edx
sub eax, edx
add edi, eax
sub r10, 1
jne 0x18000c070
cmp ecx, r9d
jae 0x18000c0a4
mov eax, dword [r14 + r8*4]
cdq
xor eax, edx
sub eax, edx
add esi, eax
inc ecx
mov r10d, dword [rsp + 0x28]
lea eax, [rdi + r11]
add esi, eax
mov eax, esi
mov qword [r15], rax
add r15, 8
sub rbp, 1
jne 0x18000bfc0
jmp 0x18000c1ea
xor r8d, r8d
test ebp, ebp
je 0x18000c1fa
mov r15, qword [rsp + 0xb8]
nop word [rax + rax]
add r9d, r10d
xor esi, esi
mov eax, r9d
sub eax, r8d
cmp r8d, r9d
jae 0x18000c163
cmp eax, 4
jb 0x18000c163
cmp r13d, 2
jl 0x18000c163
and eax, 3
mov edx, r9d
sub edx, eax
xorps xmm3, xmm3
xorps xmm4, xmm4
nop dword [rax]
movq xmm0, qword [r14 + r8*4]
lea eax, [r8 + 2]
pabsd xmm1, xmm0
add r8d, 4
movq xmm0, qword [r14 + rax*4]
pmovsxdq xmm2, xmm1
paddq xmm2, xmm3
pabsd xmm1, xmm0
movdqa xmm3, xmm2
pmovsxdq xmm2, xmm1
paddq xmm2, xmm4
movdqa xmm4, xmm2
cmp r8d, edx
jb 0x18000c110
paddq xmm3, xmm2
movdqa xmm0, xmm3
psrldq xmm0, 8
paddq xmm3, xmm0
movq rsi, xmm3
xor r11d, r11d
xor edi, edi
cmp r8d, r9d
jae 0x18000c1d9
mov eax, r9d
mov ecx, r8d
sub eax, r8d
cmp eax, 2
jb 0x18000c1bc
mov eax, r9d
sub eax, r8d
sub eax, 2
shr eax, 1
inc eax
mov r10d, eax
lea r8d, [r8 + rax*2]
nop
mov eax, dword [r14 + rcx*4]
cdq
xor eax, edx
sub eax, edx
cdqe
add r11, rax
mov eax, dword [r14 + rcx*4 + 4]
cdq
add rcx, 2
xor eax, edx
sub eax, edx
cdqe
add rdi, rax
sub r10, 1
jne 0x18000c190
cmp r8d, r9d
jae 0x18000c1cd
mov eax, dword [r14 + rcx*4]
cdq
xor eax, edx
sub eax, edx
cdqe
add rsi, rax
inc r8d
mov r10d, dword [rsp + 0x28]
lea rax, [rdi + r11]
add rsi, rax
mov qword [r15], rsi
add r15, 8
sub rbp, 1
jne 0x18000c0e0
mov ebp, dword [rsp + 0x2c]
mov rdi, qword [rsp + 0xa8]
mov edx, dword [rsp + 0x30]
add edx, 0x4488
mov dword [rsp + 0x30], edx
cmp edx, 0x4488
jbe 0x18000bf50
mov r13d, dword [rsp + 0x20]
mov rsi, qword [rsp + 0xb8]
mov r15, qword [rsp + 0x98]
mov dword [rsp + 0x48], ebx
mov ebx, dword [rsp + 0x38]
jmp 0x18000c31a
mov r9, r14
mov dword [rsp + 0x30], 8
lea r8, [rsp + 0x30]
mov edx, 0x3b
lea rcx, [rsp + 0x20]
call fcn.18000aa50
test eax, eax
je 0x18000c33d
test r15, r15
je 0x18000c26b
mov ecx, dword [rdi]
movzx eax, byte [rsp + 0x20]
mov byte [rcx + r15], al
inc dword [rdi]
mov r13d, dword [rsp + 0x20]
test r13b, r13b
js 0x18000c283
xor eax, eax
mov r12d, r13d
mov dword [rsp + 0x24], eax
jmp 0x18000c31a
test r13b, 0xc0
je 0x18000c2a0
test r13b, 0x20
jne 0x18000c2a0
mov r12d, r13d
mov dword [rsp + 0x24], 1
and r12d, 0x1f
jmp 0x18000c31a
test r13b, 0xe0
je 0x18000c2bd
test r13b, 0x10
jne 0x18000c2bd
mov r12d, r13d
mov dword [rsp + 0x24], 2
and r12d, 0xf
jmp 0x18000c31a
test r13b, 0xf0
je 0x18000c2da
test r13b, 8
jne 0x18000c2da
mov r12d, r13d
mov dword [rsp + 0x24], 3
and r12d, 7
jmp 0x18000c31a
test r13b, 0xf8
je 0x18000c2f7
test r13b, 4
jne 0x18000c2f7
mov r12d, r13d
mov dword [rsp + 0x24], 4
and r12d, 3
jmp 0x18000c31a
test r13b, 0xfc
je 0x18000becd
test r13b, 2
jne 0x18000becd
mov r12d, r13d
mov dword [rsp + 0x24], 5
and r12d, 1
mov edx, dword [rsp + 0xc0]
inc edx
mov dword [rsp + 0xc0], edx
cmp edx, dword [rsp + 0x40]
jae case.0x18000bdd6.269
mov r10, qword [rsp + 0xa0]
jmp 0x18000bdb5
xor eax, eax
jmp 0x18000c343
mov eax, ebx
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret