Function at 0x180103a54
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x48], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
xor ebx, ebx
mov ebp, edx
mov r15d, r9d
add rbp, rcx
add r15, r8
mov r14d, edx
mov qword [rsp + 0xb0], rbx
mov r12, r8
mov qword [rsp + 0x48], r15
mov r13, rcx
cmp r9d, 0x40
jb 0x180103fee
lea eax, [rbx + 8]
cmp r14d, eax
jb 0x180103fee
cmp rcx, 0x2001
ja 0x180103abd
mov eax, 0xc00000bb
jmp 0x180103ff3
mov rcx, qword [rsp + 0xd8]
xor edx, edx
mov r8d, 0x40000
call sym.ntdll.dll_memset
lea rax, [r15 - 0x29]
mov qword [rsp + 0xe0], rbx
mov qword [rsp + 0x28], rax
lea rdx, [rbp - 5]
mov al, byte [r13]
lea rdi, [r13 + 1]
mov byte [r12 + 4], al
mov r8, r12
xor eax, eax
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rbx
mov r11d, eax
lea rbx, [r12 + 5]
mov qword [rsp + 0xe8], r12
mov dword [rsp + 0x60], r14d
lea r12, [0x1801302d0]
mov esi, 2
mov qword [rsp + 0x40], r13
mov r15, r13
mov r9, qword [rsp + 0xd8]
lea rax, [r15 + 0x2000]
cmp rax, rdx
mov r10, rdx
cmovbe r10, rax
mov eax, r14d
add rax, rdi
mov qword [rsp + 0x30], r10
cmp r10, rax
cmovb rax, r10
and r11d, 0x3fff
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x38], r11
cmp r15, r10
jae 0x180103bcc
lea rdx, [r9 + 0x40000]
lea rdx, [rdx + r11*8]
movzx eax, byte [r15 + 1]
inc r11
movzx ecx, word [r12 + rax*2 + 0x200]
movzx eax, byte [r15]
movzx eax, word [r12 + rax*2]
xor rcx, rax
movzx eax, byte [r15 + 2]
movzx eax, word [r12 + rax*2 + 0x400]
xor rcx, rax
mov rax, qword [r9 + rcx*8]
mov qword [rdx], rax
lea rdx, [rdx + 8]
mov qword [r9 + rcx*8], r15
inc r15
cmp r15, r10
jb 0x180103b78
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], r11
mov rax, qword [rsp + 0x20]
mov r14d, 0x2000
lea r12, [rdi - 0x2000]
sub r14, r13
mov r11d, 0x3fff
cmp rdi, rax
jb 0x180103c20
cmp rdi, r10
jae 0x180103f8b
mov r8, rdi
lea rcx, [rsp + 0x50]
mov rdx, r10
call fcn.180104040
mov r8, qword [rsp + 0xe8]
mov r11d, 0x3fff
mov r9, qword [rsp + 0xd8]
mov r10, qword [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov r15d, dword [rdi]
lea rcx, [r14 + r12]
and rcx, r11
mov rdx, qword [r9 + rcx*8 + 0x40000]
cmp rdx, r12
jb 0x180103c93
mov ecx, dword [rdx]
xor ecx, r15d
je 0x180103d07
test ecx, 0xffffff
je 0x180103cd9
sub rdx, r13
and rdx, r11
mov rdx, qword [r9 + rdx*8 + 0x40000]
cmp rdx, r12
jb 0x180103c93
mov eax, dword [rdx]
xor eax, r15d
je 0x180103d07
mov ecx, 0xffffff
test ecx, eax
je 0x180103cd9
sub rdx, r13
and rdx, r11
mov rdx, qword [r9 + rdx*8 + 0x40000]
cmp rdx, r12
jb 0x180103c93
mov eax, dword [rdx]
xor eax, r15d
je 0x180103d07
test ecx, eax
je 0x180103cd9
mov byte [rbx], r15b
lea ecx, [rsi + rsi]
inc rbx
inc rdi
inc r12
mov rax, rbx
test esi, esi
jle 0x180103cb5
mov esi, ecx
mov rax, qword [rsp + 0x20]
jmp 0x180103be2
add rbx, 4
mov dword [r8], ecx
mov esi, 1
mov r8, rax
cmp rbx, qword [rsp + 0x28]
jae 0x180103fb1
mov qword [rsp + 0xe8], rax
jmp 0x180103cab
mov rax, qword [rsp + 0xd8]
lea r12, [rdi - 0x2000]
mov rcx, rdi
mov r11d, 3
sub rcx, rdx
xor r14d, r14d
mov qword [rsp + 0xb0], rcx
mov r9d, r14d
jmp 0x180103e89
xor r14d, r14d
mov r9d, r14d
lea r11d, [r14 + 3]
mov rax, rdi
mov r10, rdi
add rdi, 4
add rdx, 4
add rax, 0x24
jmp 0x180103d87
mov eax, dword [rdi]
mov ecx, dword [rdx]
cmp eax, ecx
jne 0x180103dd5
mov eax, dword [rdi + 4]
mov ecx, dword [rdx + 4]
cmp eax, ecx
jne 0x180103dcd
mov eax, dword [rdi + 8]
mov ecx, dword [rdx + 8]
cmp eax, ecx
jne 0x180103dc3
mov eax, dword [rdi + 0xc]
mov ecx, dword [rdx + 0xc]
cmp eax, ecx
jne 0x180103db9
mov eax, dword [rdi + 0x10]
mov ecx, dword [rdx + 0x10]
cmp eax, ecx
jne 0x180103daf
mov eax, dword [rdi + 0x14]
mov ecx, dword [rdx + 0x14]
cmp eax, ecx
jne 0x180103da5
mov eax, dword [rdi + 0x18]
mov ecx, dword [rdx + 0x18]
cmp eax, ecx
jne 0x180103d9b
mov eax, dword [rdi + 0x1c]
mov ecx, dword [rdx + 0x1c]
cmp eax, ecx
jne 0x180103d91
add rdi, 0x20
add rdx, 0x20
lea rax, [rdi + 0x20]
cmp rax, rbp
jb 0x180103d25
jmp 0x180103e11
add rdi, 0x1c
add rdx, 0x1c
jmp 0x180103dd5
add rdi, 0x18
add rdx, 0x18
jmp 0x180103dd5
add rdi, 0x14
add rdx, 0x14
jmp 0x180103dd5
add rdi, 0x10
add rdx, 0x10
jmp 0x180103dd5
add rdi, 0xc
add rdx, 0xc
jmp 0x180103dd5
add rdi, 8
add rdx, 8
jmp 0x180103dd5
add rdi, 4
add rdx, 4
cmp al, cl
jne 0x180103e16
mov al, byte [rdx + 1]
cmp byte [rdi + 1], al
je 0x180103de9
inc rdi
inc rdx
jmp 0x180103e16
mov al, byte [rdx + 2]
cmp byte [rdi + 2], al
je 0x180103dfb
add rdi, 2
add rdx, 2
jmp 0x180103e16
add rdi, 3
add rdx, 3
jmp 0x180103e16
mov al, byte [rdx]
cmp byte [rdi], al
jne 0x180103e16
inc rdi
inc rdx
cmp rdi, rbp
jb 0x180103e05
mov rax, rdi
sub rax, r10
cmp rax, r11
jbe 0x180103e6f
mov rcx, rdi
mov r11, rax
sub rcx, rdx
mov qword [rsp + 0xb0], rcx
cmp rdx, r10
jbe 0x180103e72
mov rdi, r10
mov r15, qword [rsp + 0xb0]
lea rax, [r11 - 3]
add rdi, r11
lea r15, [r15*8 - 8]
cmp rax, 7
jae 0x180103ea9
add r15, rax
mov word [rbx], r15w
add rbx, 2
mov qword [rsp + 0xb0], r15
jmp 0x180103f3d
add r9, rax
sub rdx, rax
mov rdi, r10
mov rax, qword [rsp + 0xd8]
inc r9
cmp r9, 0x18
jae 0x180103e3a
sub rdx, r13
and edx, 0x3fff
mov rdx, qword [rax + rdx*8 + 0x40000]
cmp rdx, r12
jb 0x180103e3a
cmp r15d, dword [rdx]
jne 0x180103e80
jmp 0x180103d11
mov rdx, qword [rsp + 0xe0]
or r15, 7
mov word [rbx], r15w
sub rax, 7
add rbx, 2
mov qword [rsp + 0xb0], r15
mov rcx, rbx
test rdx, rdx
jne 0x180103ee7
mov qword [rsp + 0xe0], rbx
cmp rax, 0xf
jb 0x180103f11
mov byte [rbx], 0xf
inc rbx
jmp 0x180103f05
mov cl, byte [rdx]
mov qword [rsp + 0xe0], r14
cmp rax, 0xf
jae 0x180103f00
shl al, 4
or al, cl
mov byte [rdx], al
jmp 0x180103f3d
or cl, 0xf0
mov byte [rdx], cl
sub rax, 0xf
cmp rax, 0xff
jae 0x180103f18
mov byte [rbx], al
inc rbx
jmp 0x180103f3d
add rax, 0x16
mov byte [rbx], 0xff
cmp rax, 0x10000
jae 0x180103f31
mov word [rbx + 1], ax
add rbx, 3
jmp 0x180103f3d
mov word [rbx + 1], r14w
mov dword [rbx + 3], eax
add rbx, 7
lea eax, [rsi*2 + 1]
test esi, esi
jle 0x180103f54
mov r8, qword [rsp + 0xe8]
mov esi, eax
jmp 0x180103f72
mov rcx, qword [rsp + 0xe8]
mov r8, rbx
mov qword [rsp + 0xe8], rbx
mov esi, 1
add rbx, 4
mov dword [rcx], eax
cmp rbx, qword [rsp + 0x28]
jae 0x180103fb1
mov r9, qword [rsp + 0xd8]
mov r10, qword [rsp + 0x30]
jmp 0x180103bc7
mov r14d, dword [rsp + 0xf0]
lea rdx, [rbp - 5]
mov r11, qword [rsp + 0x38]
lea r12, [0x1801302d0]
mov r15, qword [rsp + 0x40]
cmp rdi, rdx
jb 0x180103b2c
mov r15, qword [rsp + 0x48]
cmp rdi, rbp
jae 0x180103fe9
cmp rbx, r15
jae 0x180103fee
mov al, byte [rdi]
inc rdi
mov byte [rbx], al
inc rbx
lea eax, [rsi + rsi]
mov rcx, rbx
test esi, esi
jle 0x180103fd8
mov esi, eax
jmp 0x180103fb6
mov dword [r8], eax
mov esi, 1
mov r8, rcx
add rbx, 4
jmp 0x180103fb6
cmp rbx, r15
jb 0x180104012
mov eax, 0xc0000023
mov rbx, qword [rsp + 0xb8]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea esi, [rsi*2 + 1]
test esi, esi
jg 0x18010400b
sub ebx, dword [rsp + 0xc0]
lea eax, [rsi*2 + 1]
mov dword [r8], eax
mov ecx, 8
mov rax, qword [rsp + 0xd0]
cmp ebx, ecx
cmovb ebx, ecx
mov dword [rax], ebx
xor eax, eax
jmp 0x180103ff3