Function at 0x180003120
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x40
cmp dword [0x180184ee8], 0
mov rbx, r8
mov esi, edx
mov rdi, rcx
jne 0x18000313e
call fcn.180003870
mov eax, dword [rdi]
mov qword [rsp + 0x78], rbp
mov dword [rbx], eax
mov eax, dword [rdi + 4]
mov qword [rsp + 0x38], r12
mov dword [rbx + 4], eax
mov eax, dword [rdi + 8]
mov qword [rsp + 0x30], r13
mov dword [rbx + 8], eax
mov edx, dword [rdi + 0xc]
mov qword [rsp + 0x28], r14
mov dword [rbx + 0xc], edx
mov qword [rsp + 0x20], r15
cmp esi, 4
je 0x18000359a
cmp esi, 6
je 0x1800032b9
cmp esi, 8
jne 0x180003844
mov eax, dword [rdi + 0x10]
lea rsi, [0x180184ec0]
mov dword [rbx + 0x10], eax
lea r11, [0x180186ef0]
mov eax, dword [rdi + 0x14]
mov dword [rbx + 0x14], eax
mov eax, dword [rdi + 0x18]
mov dword [rbx + 0x18], eax
mov edx, dword [rdi + 0x1c]
xor edi, edi
mov dword [rbx + 0x1c], edx
lea r10d, [rdi*8]
ror edx, 8
mov r8d, edx
lea rsi, [rsi + 4]
shr rdx, 0x18
mov eax, r8d
shr eax, 0x10
inc edi
movzx ecx, al
mov eax, r8d
shr eax, 8
mov r9d, dword [r11 + rdx*4 + 0xc00]
xor r9d, dword [r11 + rcx*4 + 0x800]
movzx ecx, al
movzx eax, r8b
xor r9d, dword [r11 + rcx*4 + 0x400]
xor r9d, dword [r11 + rax*4]
lea eax, [r10 + 8]
xor r9d, dword [rbx + r10*4]
xor r9d, dword [rsi - 4]
mov dword [rbx + rax*4], r9d
lea eax, [r10 + 1]
xor r9d, dword [rbx + rax*4]
lea eax, [r10 + 9]
mov dword [rbx + rax*4], r9d
lea eax, [r10 + 2]
xor r9d, dword [rbx + rax*4]
lea eax, [r10 + 0xa]
mov dword [rbx + rax*4], r9d
lea eax, [r10 + 3]
xor r9d, dword [rbx + rax*4]
lea eax, [r10 + 0xb]
mov dword [rbx + rax*4], r9d
mov eax, r9d
shr eax, 0x10
movzx ecx, al
mov eax, r9d
shr eax, 8
mov edx, r9d
shr rdx, 0x18
mov edx, dword [r11 + rdx*4 + 0xc00]
xor edx, dword [r11 + rcx*4 + 0x800]
movzx ecx, al
lea eax, [r10 + 4]
xor edx, dword [r11 + rcx*4 + 0x400]
xor edx, dword [rbx + rax*4]
movzx eax, r9b
xor edx, dword [r11 + rax*4]
lea eax, [r10 + 0xc]
mov dword [rbx + rax*4], edx
lea eax, [r10 + 5]
xor edx, dword [rbx + rax*4]
lea eax, [r10 + 0xd]
mov dword [rbx + rax*4], edx
lea eax, [r10 + 6]
xor edx, dword [rbx + rax*4]
lea eax, [r10 + 0xe]
mov dword [rbx + rax*4], edx
lea eax, [r10 + 7]
xor edx, dword [rbx + rax*4]
lea eax, [r10 + 0xf]
mov dword [rbx + rax*4], edx
cmp edi, 7
jb 0x1800031b0
jmp 0x180003844
mov eax, dword [rdi + 0x10]
lea r12, [0x180184ec8]
mov dword [rbx + 0x10], eax
lea rbp, [0x180186ef0]
mov edx, dword [rdi + 0x14]
xor r13d, r13d
mov dword [rbx + 0x14], edx
mov dword [rsp + 0x68], r13d
mov qword [rsp + 0x60], r12
ror edx, 8
lea eax, [r13*2]
add eax, r13d
mov r8d, edx
shr rdx, 0x18
add r13d, 3
lea r15d, [rax + rax]
mov eax, r8d
mov r14d, dword [rbp + rdx*4 + 0xc00]
shr eax, 0x10
movzx ecx, al
mov eax, r8d
shr eax, 8
mov qword [rsp + 0x70], r15
xor r14d, dword [rbp + rcx*4 + 0x800]
movzx ecx, al
movzx eax, r8b
xor r14d, dword [rbp + rcx*4 + 0x400]
xor r14d, dword [rbp + rax*4]
lea eax, [r15 + 6]
xor r14d, dword [rbx + r15*4]
xor r14d, dword [r12 - 8]
mov dword [rbx + rax*4], r14d
mov r9d, r14d
lea eax, [r15 + 1]
xor r14d, dword [rbx + rax*4]
lea eax, [r15 + 7]
mov dword [rbx + rax*4], r14d
mov r10d, r14d
lea eax, [r15 + 2]
xor r14d, dword [rbx + rax*4]
lea eax, [r15 + 8]
mov dword [rbx + rax*4], r14d
mov edi, r14d
lea eax, [r15 + 3]
xor r14d, dword [rbx + rax*4]
lea eax, [r15 + 9]
mov dword [rbx + rax*4], r14d
mov esi, r14d
lea eax, [r15 + 4]
xor r14d, dword [rbx + rax*4]
lea eax, [r15 + 0xa]
mov dword [rbx + rax*4], r14d
mov r11d, r14d
lea eax, [r15 + 5]
xor r14d, dword [rbx + rax*4]
lea eax, [r15 + 0xb]
mov dword [rbx + rax*4], r14d
mov eax, r14d
ror eax, 8
mov edx, eax
mov r8d, eax
shr eax, 0x10
movzx ecx, al
mov eax, r8d
shr eax, 8
shr rdx, 0x18
mov r12d, dword [rbp + rdx*4 + 0xc00]
xor r12d, dword [rbp + rcx*4 + 0x800]
movzx ecx, al
movzx eax, r8b
xor r12d, dword [rbp + rcx*4 + 0x400]
xor r12d, dword [rbp + rax*4]
mov rax, qword [rsp + 0x60]
xor r12d, dword [rax - 4]
lea eax, [r13 - 1]
xor r12d, r9d
lea ecx, [rax + rax*2]
mov r9d, r12d
lea eax, [r15 + 0xd]
add ecx, ecx
mov dword [rbx + rcx*4], r12d
xor r12d, r10d
mov dword [rbx + rax*4], r12d
mov r10d, r12d
xor r12d, edi
lea eax, [r15 + 0xe]
mov edi, r12d
mov dword [rbx + rax*4], r12d
xor r12d, esi
mov esi, r12d
lea eax, [r15 + 0xf]
mov dword [rbx + rax*4], r12d
lea eax, [r15 + 0x10]
xor r12d, r11d
lea r11, [0x180186ef0]
mov dword [rbx + rax*4], r12d
mov ebp, r12d
lea eax, [r15 + 0x11]
xor r12d, r14d
mov dword [rbx + rax*4], r12d
mov eax, r12d
ror eax, 8
mov edx, eax
mov r8d, eax
shr eax, 0x10
movzx ecx, al
mov eax, r8d
shr eax, 8
shr rdx, 0x18
mov r15d, dword [r11 + rdx*4 + 0xc00]
xor r15d, dword [r11 + rcx*4 + 0x800]
mov rdx, qword [rsp + 0x70]
movzx ecx, al
movzx eax, r8b
xor r15d, dword [r11 + rcx*4 + 0x400]
xor r15d, dword [r11 + rax*4]
mov rax, qword [rsp + 0x60]
xor r15d, r9d
xor r15d, dword [rax]
lea eax, [r13*2]
add eax, r13d
mov r11d, r15d
add eax, eax
mov dword [rbx + rax*4], r15d
lea eax, [rdx + 0x13]
xor r15d, r10d
mov dword [rbx + rax*4], r15d
mov r14d, r15d
lea eax, [rdx + 0x14]
xor r15d, edi
mov dword [rbx + rax*4], r15d
mov edi, r15d
xor r15d, esi
mov rsi, rdx
mov r10d, r15d
lea eax, [rsi + 0x15]
mov dword [rbx + rax*4], r15d
xor r15d, ebp
lea eax, [rsi + 0x16]
mov r9d, r15d
mov dword [rbx + rax*4], r15d
lea rbp, [0x180186ef0]
xor r15d, r12d
lea eax, [rsi + 0x17]
mov r12, qword [rsp + 0x60]
mov dword [rbx + rax*4], r15d
mov eax, r15d
ror eax, 8
mov edx, eax
shr rdx, 0x18
mov r8d, eax
shr eax, 0x10
movzx ecx, al
mov eax, r8d
mov edx, dword [rbp + rdx*4 + 0xc00]
shr eax, 8
xor edx, dword [rbp + rcx*4 + 0x800]
movzx ecx, al
movzx eax, r8b
xor edx, dword [rbp + rcx*4 + 0x400]
xor edx, dword [rbp + rax*4]
lea eax, [r13 + 1]
xor edx, dword [r12 + 4]
lea ecx, [rax + rax*2]
xor edx, r11d
lea eax, [rsi + 0x19]
add ecx, ecx
mov dword [rbx + rcx*4], edx
xor edx, r14d
mov dword [rbx + rax*4], edx
xor edx, edi
mov r13d, dword [rsp + 0x68]
lea eax, [rsi + 0x1a]
mov dword [rbx + rax*4], edx
add r13d, 4
xor edx, r10d
mov dword [rsp + 0x68], r13d
lea eax, [rsi + 0x1b]
add r12, 0x10
mov dword [rbx + rax*4], edx
xor edx, r9d
lea eax, [rsi + 0x1c]
mov qword [rsp + 0x60], r12
mov dword [rbx + rax*4], edx
xor edx, r15d
lea eax, [rsi + 0x1d]
mov dword [rbx + rax*4], edx
cmp r13d, 8
jb 0x1800032e0
jmp 0x180003844
xor esi, esi
lea r14, [0x180184ec8]
mov dword [rsp + 0x68], esi
lea r12, [0x180186ef0]
invalid
invalid