Function at 0x140054990
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov rbx, rdx
mov r15, rcx
mov rax, qword [0x1400c5038]
xor rax, rsp
mov qword [rsp + 0x30], rax
test r9, r9
je 0x1400549c8
mov r12, r9
movzx r9d, word [rsp + 0xa0]
jmp 0x1400549d7
lea r12, [rsp + 0x27]
mov byte [rsp + 0x27], 0
mov r9w, 1
movsx edi, r8w
xor ecx, ecx
nop dword [rax]
mov eax, ecx
cwd
idiv di
movsx rax, dx
mov eax, eax
movzx esi, byte [rbx + rax]
shl esi, 0x18
xor esi, dword [r15 + rcx + 0x1000]
mov dword [r15 + rcx + 0x1000], esi
lea eax, [rcx + 1]
cdq
idiv edi
movzx ebp, byte [rbx + rdx]
shl ebp, 0x10
xor ebp, esi
mov dword [r15 + rcx + 0x1000], ebp
lea eax, [rcx + 2]
cdq
idiv edi
movzx esi, byte [rbx + rdx]
shl esi, 8
xor esi, ebp
mov dword [r15 + rcx + 0x1000], esi
lea eax, [rcx + 3]
cdq
idiv edi
movzx eax, byte [rbx + rdx]
xor eax, esi
mov dword [r15 + rcx + 0x1000], eax
add rcx, 4
cmp rcx, 0x48
jne 0x1400549e0
movsx r14d, r9w
xor r8d, r8d
mov r13, 0xfffffffffffffffe
xor ecx, ecx
xor ebx, ebx
nop word cs:[rax + rax]
nop dword [rax]
mov eax, ebx
cdq
idiv r14d
movzx edi, byte [r12 + rdx]
shl edi, 0x18
xor edi, ecx
lea eax, [rbx + 1]
cdq
idiv r14d
movzx esi, byte [r12 + rdx]
shl esi, 0x10
xor esi, edi
lea eax, [rbx + 2]
cdq
idiv r14d
movzx edi, byte [r12 + rdx]
shl edi, 8
lea eax, [rbx + 3]
cdq
idiv r14d
movzx ecx, byte [r12 + rdx]
xor ecx, edi
xor ecx, esi
mov dword [rsp + 0x28], ecx
lea eax, [rbx + 4]
cdq
idiv r14d
movzx edi, byte [r12 + rdx]
shl edi, 0x18
xor edi, r8d
lea eax, [rbx + 5]
cdq
idiv r14d
movzx esi, byte [r12 + rdx]
shl esi, 0x10
lea eax, [rbx + 6]
cdq
idiv r14d
movzx ebp, byte [r12 + rdx]
shl ebp, 8
xor ebp, esi
xor ebp, edi
lea eax, [rbx + 7]
cdq
idiv r14d
movzx edx, byte [r12 + rdx]
xor edx, ebp
mov dword [rsp + 0x2c], edx
lea r8, [rsp + 0x28]
mov r9, r15
call fcn.1400545f0
mov ecx, dword [rsp + 0x28]
mov dword [r15 + r13*4 + 0x1008], ecx
mov r8d, dword [rsp + 0x2c]
mov dword [r15 + r13*4 + 0x100c], r8d
add r13, 2
add ebx, 8
cmp r13, 0x10
jb 0x140054a70
mov ebx, 0x48
mov r13, 0xfffffffffffffffe
nop dword [rax]
mov eax, ebx
cdq
idiv r14d
movzx ebp, byte [r12 + rdx]
shl ebp, 0x18
xor ebp, ecx
lea eax, [rbx + 1]
cdq
idiv r14d
movzx edi, byte [r12 + rdx]
shl edi, 0x10
xor edi, ebp
lea eax, [rbx + 2]
cdq
idiv r14d
movzx ebp, byte [r12 + rdx]
shl ebp, 8
lea eax, [rbx + 3]
cdq
idiv r14d
movzx ecx, byte [r12 + rdx]
xor ecx, ebp
xor ecx, edi
mov dword [rsp + 0x28], ecx
lea eax, [rbx + 4]
cdq
idiv r14d
movzx ebp, byte [r12 + rdx]
shl ebp, 0x18
xor ebp, r8d
lea eax, [rbx + 5]
cdq
idiv r14d
movzx edi, byte [r12 + rdx]
shl edi, 0x10
lea eax, [rbx + 6]
cdq
idiv r14d
movzx esi, byte [r12 + rdx]
shl esi, 8
xor esi, edi
xor esi, ebp
lea eax, [rbx + 7]
cdq
idiv r14d
movzx edx, byte [r12 + rdx]
xor edx, esi
mov dword [rsp + 0x2c], edx
lea r8, [rsp + 0x28]
mov r9, r15
call fcn.1400545f0
mov ecx, dword [rsp + 0x28]
mov dword [r15 + r13*4 + 8], ecx
mov r8d, dword [rsp + 0x2c]
mov dword [r15 + r13*4 + 0xc], r8d
add r13, 2
add ebx, 8
cmp r13, 0xfe
jb 0x140054b40
mov ebx, 0x448
mov r13, 0xfffffffffffffffe
nop word [rax + rax]
mov eax, ebx
cdq
idiv r14d
movzx ebp, byte [r12 + rdx]
shl ebp, 0x18
xor ebp, ecx
lea eax, [rbx + 1]
cdq
idiv r14d
movzx edi, byte [r12 + rdx]
shl edi, 0x10
xor edi, ebp
lea eax, [rbx + 2]
cdq
idiv r14d
movzx ebp, byte [r12 + rdx]
shl ebp, 8
lea eax, [rbx + 3]
cdq
idiv r14d
movzx ecx, byte [r12 + rdx]
xor ecx, ebp
xor ecx, edi
mov dword [rsp + 0x28], ecx
lea eax, [rbx + 4]
cdq
idiv r14d
movzx ebp, byte [r12 + rdx]
shl ebp, 0x18
xor ebp, r8d
lea eax, [rbx + 5]
cdq
idiv r14d
movzx edi, byte [r12 + rdx]
shl edi, 0x10
lea eax, [rbx + 6]
cdq
idiv r14d
movzx esi, byte [r12 + rdx]
shl esi, 8
xor esi, edi
xor esi, ebp
lea eax, [rbx + 7]
cdq
idiv r14d
movzx edx, byte [r12 + rdx]
xor edx, esi
mov dword [rsp + 0x2c], edx
lea r8, [rsp + 0x28]
mov r9, r15
call fcn.1400545f0
mov ecx, dword [rsp + 0x28]
mov dword [r15 + r13*4 + 0x408], ecx
mov r8d, dword [rsp + 0x2c]
mov dword [r15 + r13*4 + 0x40c], r8d
add r13, 2
add ebx, 8
cmp r13, 0xfe
jb 0x140054c10
mov ebx, 0x848
mov r13, 0xfffffffffffffffe
mov eax, ebx
cdq
idiv r14d
movzx ebp, byte [r12 + rdx]
shl ebp, 0x18
xor ebp, ecx
lea eax, [rbx + 1]
cdq
idiv r14d
movzx edi, byte [r12 + rdx]
shl edi, 0x10
xor edi, ebp
lea eax, [rbx + 2]
cdq
idiv r14d
movzx ebp, byte [r12 + rdx]
shl ebp, 8
lea eax, [rbx + 3]
cdq
idiv r14d
movzx ecx, byte [r12 + rdx]
xor ecx, ebp
xor ecx, edi
mov dword [rsp + 0x28], ecx
lea eax, [rbx + 4]
cdq
idiv r14d
movzx ebp, byte [r12 + rdx]
shl ebp, 0x18
xor ebp, r8d
lea eax, [rbx + 5]
cdq
idiv r14d
movzx edi, byte [r12 + rdx]
shl edi, 0x10
lea eax, [rbx + 6]
cdq
idiv r14d
movzx esi, byte [r12 + rdx]
shl esi, 8
xor esi, edi
xor esi, ebp
lea eax, [rbx + 7]
cdq
idiv r14d
movzx edx, byte [r12 + rdx]
xor edx, esi
mov dword [rsp + 0x2c], edx
lea r8, [rsp + 0x28]
mov r9, r15
call fcn.1400545f0
mov ecx, dword [rsp + 0x28]
mov dword [r15 + r13*4 + 0x808], ecx
mov r8d, dword [rsp + 0x2c]
mov dword [r15 + r13*4 + 0x80c], r8d
add r13, 2
add ebx, 8
cmp r13, 0xfe
jb 0x140054ce0
mov ebx, 0xc48
mov r13, 0xfffffffffffffffe
mov eax, ebx
cdq
idiv r14d
movzx ebp, byte [r12 + rdx]
shl ebp, 0x18
xor ebp, ecx
lea eax, [rbx + 1]
cdq
idiv r14d
movzx edi, byte [r12 + rdx]
shl edi, 0x10
xor edi, ebp
lea eax, [rbx + 2]
cdq
idiv r14d
movzx ebp, byte [r12 + rdx]
shl ebp, 8
lea eax, [rbx + 3]
cdq
idiv r14d
movzx ecx, byte [r12 + rdx]
xor ecx, ebp
xor ecx, edi
mov dword [rsp + 0x28], ecx
lea eax, [rbx + 4]
cdq
idiv r14d
movzx ebp, byte [r12 + rdx]
shl ebp, 0x18
xor ebp, r8d
lea eax, [rbx + 5]
cdq
idiv r14d
movzx edi, byte [r12 + rdx]
shl edi, 0x10
lea eax, [rbx + 6]
cdq
idiv r14d
movzx esi, byte [r12 + rdx]
shl esi, 8
xor esi, edi
xor esi, ebp
lea eax, [rbx + 7]
cdq
idiv r14d
movzx edx, byte [r12 + rdx]
xor edx, esi
mov dword [rsp + 0x2c], edx
lea r8, [rsp + 0x28]
mov r9, r15
call fcn.1400545f0
mov ecx, dword [rsp + 0x28]
mov dword [r15 + r13*4 + 0xc08], ecx
mov r8d, dword [rsp + 0x2c]
mov dword [r15 + r13*4 + 0xc0c], r8d
add r13, 2
add ebx, 8
cmp r13, 0xfe
jb 0x140054db0
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.14006cf60
nop
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret