Function at 0x180001880
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
mov qword [rax + 0x18], r8
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5b8]
sub rsp, 0x680
xor eax, eax
xor ecx, ecx
mov r12, r8
mov byte [rsp + 0x50], cl
mov byte [rsp + 0x20], cl
mov byte [rsp + 0x30], cl
mov byte [rbp + 0x60], cl
mov r14d, edx
lea rcx, [rbp + 0x61]
xor edx, edx
mov r8d, 0x3ff
movsxd rdi, r9d
mov dword [rbp + 0x5c8], 1
mov qword [rsp + 0x51], rax
mov dword [rsp + 0x59], eax
mov word [rsp + 0x5d], ax
mov byte [rsp + 0x5f], al
mov qword [rsp + 0x21], rax
mov dword [rsp + 0x29], eax
mov word [rsp + 0x2d], ax
mov byte [rsp + 0x2f], al
mov qword [rsp + 0x31], rax
mov qword [rsp + 0x39], rax
mov qword [rsp + 0x41], rax
mov dword [rsp + 0x49], eax
mov word [rsp + 0x4d], ax
mov byte [rsp + 0x4f], al
call fcn.18001cca0
lea eax, [rdi + 0x200]
movsxd rbx, eax
mov rcx, rbx
call fcn.18001cf00
mov r8, rbx
xor edx, edx
mov rcx, rax
mov r15, rax
call fcn.18001cca0
mov ebx, 0x120
lea rcx, [rbp + 0x460]
mov r8d, ebx
xor edx, edx
call fcn.18001cca0
lea r13d, [rbx - 0x34]
lea rcx, [rsp + 0x70]
mov r8d, r13d
xor edx, edx
call fcn.18001cca0
mov rsi, qword [rbp + 0x5e8]
mov rax, rdi
and dword [rsi], 0
mov qword [rbp + 0x5c0], rax
test r14d, r14d
je 0x180001b7d
cmp r14d, 1
jne 0x180001dac
cmp rax, 0x30
jl 0x180001dac
test al, 0xf
jne 0x180001dac
lea ebx, [r14 + 0xf]
lea rcx, [rbp + 0x60]
mov rdx, r12
mov r8d, ebx
sub rdi, 0x30
call fcn.18001cfc0
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x20]
mov r8d, ebx
call fcn.18001cfc0
movzx r13d, byte [rsp + 0x2f]
lea r8d, [r14 + 0x1f]
lea rcx, [rsp + 0x30]
xor edx, edx
and r13d, 0xf
call fcn.18001cca0
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
mov r8d, ebx
call fcn.18001cfc0
mov r14d, 0x2000
lea rcx, [rsp + 0x70]
xor edx, edx
call fcn.180012ab0
lea r8d, [rdx + 0x20]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x70]
call fcn.1800150f0
mov rdx, qword [rbp + 0x5f0]
lea rcx, [rsp + 0x70]
mov r8d, 0x20
call fcn.1800150f0
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x70]
call fcn.1800151c0
dec r14
jne 0x1800019fc
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x460]
call fcn.180011e60
lea r8d, [r14 + 0x20]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x70]
xor r9d, r9d
call fcn.180015830
test rdi, rdi
jle 0x180001b21
lea rdx, [r14 + 0x10]
lea rcx, [rbp + 0x60]
mov r8, rbx
add rdx, r12
call fcn.18001cfc0
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x60]
mov r8, rbx
call fcn.18001cfc0
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x70]
mov r8, rbx
call fcn.1800150f0
lea r9, [rbp + 0x60]
lea r8, [rbp + 0x60]
lea rcx, [rbp + 0x460]
xor edx, edx
call fcn.180011ff0
xor ecx, ecx
mov al, byte [rsp + rcx + 0x20]
inc rcx
xor byte [rbp + rcx + 0x5f], al
cmp rcx, rbx
jl 0x180001ac3
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x20]
mov r8, rbx
call fcn.18001cfc0
test r13d, r13d
jle 0x180001af6
lea rax, [rdi - 0x10]
mov r12d, r13d
cmp r14, rax
je 0x180001af9
mov r12d, ebx
movsxd rcx, dword [rsi]
lea rdx, [rbp + 0x60]
movsxd r8, r12d
add rcx, r15
call fcn.18001cfc0
add dword [rsi], r12d
mov r12, qword [rbp + 0x5d0]
add r14, rbx
cmp r14, rdi
jl 0x180001a76
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x70]
call fcn.1800159f0
lea rdx, [rdi + 0x10]
mov r13d, 0x20
lea rcx, [rbp + 0x60]
mov r8d, r13d
add rdx, r12
call fcn.18001cfc0
xor dl, dl
xor ecx, ecx
mov al, byte [rbp + rcx + 0x60]
inc rcx
xor al, byte [rsp + rcx + 0x2f]
or dl, al
cmp rcx, r13
jl 0x180001b4d
test dl, dl
jne 0x180001da3
mov r8, qword [rbp + 0x5c0]
xor edx, edx
mov rcx, r12
call fcn.18001cca0
jmp 0x180001d84
xor edx, edx
lea r9, [rbp + 0x60]
mov ecx, edx
mov rax, rdi
inc edx
shl ecx, 3
sar rax, cl
mov byte [r9], al
inc r9
cmp edx, 8
jl 0x180001b83
mov ebx, 0x10
lea rcx, [rsp + 0x50]
mov rdx, r12
mov r8d, ebx
call fcn.18001cfc0
lea rcx, [rsp + 0x70]
xor edx, edx
call fcn.180012ab0
lea r8d, [rbx - 8]
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x70]
call fcn.1800150f0
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x70]
mov r8d, ebx
call fcn.1800150f0
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x70]
call fcn.1800151c0
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
mov r8d, ebx
call fcn.18001cfc0
mov cl, byte [rsp + 0x2f]
lea rdx, [rsp + 0x20]
mov al, cl
mov r8d, ebx
xor al, dil
and al, 0xf
xor cl, al
mov byte [rsp + 0x2f], cl
mov rcx, r15
call fcn.18001cfc0
add dword [rsi], ebx
lea r13d, [rbx + 0x10]
lea rcx, [rsp + 0x30]
mov r8d, r13d
xor edx, edx
call fcn.18001cca0
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
mov r8d, ebx
call fcn.18001cfc0
mov r14d, 0x2000
lea rcx, [rsp + 0x70]
xor edx, edx
call fcn.180012ab0
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x70]
mov r8, r13
call fcn.1800150f0
mov rdx, qword [rbp + 0x5f0]
lea rcx, [rsp + 0x70]
mov r8, r13
call fcn.1800150f0
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x70]
call fcn.1800151c0
dec r14
jne 0x180001c4f
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x460]
call fcn.180011b90
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x70]
xor r9d, r9d
mov r8, r13
call fcn.180015830
test rdi, rdi
jle 0x180001d5f
mov r13, qword [rbp + 0x5d0]
mov r12, rdi
mov eax, edi
lea rdx, [r14 + r13]
lea rcx, [rbp + 0x60]
sub eax, r14d
cmp r12, rbx
cmovg eax, ebx
movsxd r8, eax
call fcn.18001cfc0
xor ecx, ecx
mov al, byte [rsp + rcx + 0x20]
inc rcx
xor byte [rbp + rcx + 0x5f], al
cmp rcx, rbx
jl 0x180001ceb
lea r9, [rbp + 0x60]
lea r8, [rbp + 0x60]
lea rcx, [rbp + 0x460]
mov edx, 1
call fcn.180011ff0
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x70]
mov r8, rbx
call fcn.1800150f0
movsxd rcx, dword [rsi]
lea rdx, [rbp + 0x60]
add rcx, r15
mov r8, rbx
call fcn.18001cfc0
add dword [rsi], ebx
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x20]
mov r8, rbx
call fcn.18001cfc0
add r14, rbx
sub r12, rbx
cmp r14, rdi
jl 0x180001cce
mov r13d, 0x20
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x70]
call fcn.1800159f0
movsxd rcx, dword [rsi]
lea rdx, [rsp + 0x30]
add rcx, r15
mov r8, r13
call fcn.18001cfc0
add dword [rsi], r13d
movsxd r8, dword [rsi]
mov rcx, qword [rbp + 0x5e0]
mov rdx, r15
call fcn.18001cfc0
mov ebx, 0x120
xor edi, edi
lea r13d, [rbx - 0x34]
jmp 0x180001db2
mov ebx, 0x120
lea r13d, [rbx - 0x34]
mov edi, dword [rbp + 0x5c8]
lea rcx, [rbp + 0x60]
xor edx, edx
mov r8d, 0x400
call fcn.18001cca0
xor edx, edx
lea rcx, [rsp + 0x30]
lea r8d, [rdx + 0x20]
call fcn.18001cca0
lea rax, [rbp + 0x460]
mov byte [rax], 0
inc rax
dec rbx
jne 0x180001dda
lea rcx, [rsp + 0x70]
mov byte [rcx], 0
inc rcx
dec r13
jne 0x180001dea
mov rcx, r15
call fcn.18001d528
mov rbx, qword [rsp + 0x6d8]
mov eax, edi
add rsp, 0x680
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret