Function at 0x180003e70
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov rbx, rcx
movsxd rdi, r8d
mov ecx, dword [rcx]
mov r14, r9
mov rsi, rdx
sub ecx, 1
je 0x180003fd6
sub ecx, 1
je 0x180003fb9
sub ecx, 1
je 0x180003ed7
cmp ecx, 1
jne 0x18000400f
mov rax, qword [rsp + 0x80]
mov r8d, edi
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.180004300
jmp 0x1800040d2
mov eax, dword [rbx + 0x38]
mov r12, qword [rsp + 0x80]
lea ebp, [rax + rdi]
mov dword [r12], ebp
cmp ebp, 0x10
jbe 0x180003fed
cmp r14, rsi
je 0x18000400f
mov ecx, 0x10
sub ecx, eax
mov edi, ecx
movsxd r8, ecx
lea rcx, [rax + 0x28]
add rcx, rbx
call fcn.18010c9a0
lea rdx, [rbx + 0x18]
add rdi, rsi
lea rcx, [rbx + 0x3c]
lea esi, [rbp - 0x10]
call fcn.180002260
mov eax, dword [rbx + 0x18]
lea rcx, [rbx + 0x28]
xor eax, dword [rcx]
mov dword [r14], eax
mov eax, dword [rbx + 0x2c]
xor eax, dword [rbx + 0x1c]
mov dword [r14 + 4], eax
mov eax, dword [rbx + 0x30]
xor eax, dword [rbx + 0x20]
mov dword [r14 + 8], eax
mov eax, dword [rbx + 0x34]
xor eax, dword [rbx + 0x24]
mov dword [r14 + 0xc], eax
add r14, 0x10
cmp esi, 0x10
jbe 0x1800040b4
lea ebp, [rsi - 0x11]
sub r14, rdi
shr ebp, 4
inc ebp
nop dword [rax + rax]
lea rdx, [rbx + 0x18]
lea rcx, [rbx + 0x3c]
call fcn.180002260
mov eax, dword [rbx + 0x18]
add esi, 0xfffffff0
xor eax, dword [rdi]
mov dword [r14 + rdi], eax
mov eax, dword [rdi + 4]
xor eax, dword [rbx + 0x1c]
mov dword [r14 + rdi + 4], eax
mov eax, dword [rdi + 8]
xor eax, dword [rbx + 0x20]
mov dword [r14 + rdi + 8], eax
mov eax, dword [rdi + 0xc]
xor eax, dword [rbx + 0x24]
mov dword [r14 + rdi + 0xc], eax
add rdi, 0x10
sub rbp, 1
jne 0x180003f70
jmp 0x1800040b0
mov rax, qword [rsp + 0x80]
mov r8d, edi
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.180004110
jmp 0x1800040d2
mov eax, dword [rbx + 0x38]
mov r12, qword [rsp + 0x80]
lea ebp, [rax + rdi]
mov dword [r12], ebp
cmp ebp, 0x10
ja 0x18000400a
lea rcx, [rax + 0x28]
mov r8, rdi
add rcx, rbx
call fcn.18010c9a0
add dword [rbx + 0x38], edi
xor eax, eax
mov dword [r12], eax
jmp 0x1800040d2
cmp rsi, r14
jne 0x180004019
mov eax, 0x1001
jmp 0x1800040d2
mov ecx, 0x10
sub ecx, eax
mov edi, ecx
movsxd r8, ecx
lea rcx, [rax + 0x28]
add rcx, rbx
call fcn.18010c9a0
mov eax, dword [rbx + 0x28]
lea rcx, [rbx + 0x3c]
mov dword [r14], eax
add rdi, rsi
mov eax, dword [rbx + 0x2c]
lea esi, [rbp - 0x10]
mov dword [r14 + 4], eax
mov rdx, r14
mov eax, dword [rbx + 0x30]
mov dword [r14 + 8], eax
mov eax, dword [rbx + 0x34]
mov dword [r14 + 0xc], eax
call fcn.1800013a0
add r14, 0x10
cmp esi, 0x10
jbe 0x1800040b0
lea ebp, [rsi - 0x11]
sub r14, rdi
shr ebp, 4
inc ebp
nop dword [rax]
nop word [rax + rax]
mov eax, dword [rdi]
lea rdx, [r14 + rdi]
mov dword [rdx], eax
lea rcx, [rbx + 0x3c]
mov eax, dword [rdi + 4]
mov dword [rdx + 4], eax
mov eax, dword [rdi + 8]
mov dword [rdx + 8], eax
mov eax, dword [rdi + 0xc]
mov dword [rdx + 0xc], eax
call fcn.1800013a0
add rdi, 0x10
add esi, 0xfffffff0
sub rbp, 1
jne 0x180004080
lea rcx, [rbx + 0x28]
movsxd r8, esi
mov rdx, rdi
call fcn.18010c9a0
mov eax, dword [rbx + 0x38]
and eax, 0xf0000000
add eax, esi
mov dword [rbx + 0x38], eax
sub dword [r12], esi