Function at 0x180054790
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x440
mov rax, qword [0x1801044f8]
xor rax, rsp
mov qword [rsp + 0x430], rax
mov eax, dword [rcx + 4]
mov r14, rcx
mov ecx, dword [rcx]
mov rbx, rdx
mov dword [r14 + 0x50], ecx
imul ecx, eax
mov dword [r14 + 0x54], eax
movsxd rdx, ecx
lea rcx, [r14 + 0x58]
call fcn.18000cee0
mov eax, dword [r14 + 0x54]
xor edx, edx
imul eax, dword [r14 + 0x50]
mov rcx, qword [r14 + 0x58]
movsxd r8, eax
call fcn.180095d50
mov eax, dword [r14 + 0x54]
imul eax, dword [r14 + 0x50]
mov rcx, qword [rbx + 8]
mov r9, qword [rbx]
mov rdi, qword [r14 + 0x58]
mov qword [rsp + 0x28], rcx
movsxd rsi, eax
mov rax, rcx
sub rax, r9
test rax, 0xfffffffffffffff8
jne 0x180054974
lea rcx, [r14 + 0x10]
mov rdx, r14
call fcn.180054dd0
xor edx, edx
lea rcx, [rsp + 0x30]
mov r8d, 0x400
call fcn.180095d50
mov eax, dword [r14 + 0x20]
xor ebx, ebx
mov rbp, qword [r14 + 0x18]
sub eax, ebp
movsxd rdx, eax
test eax, eax
jle 0x180054870
mov ecx, ebx
nop word [rax + rax]
movzx eax, byte [rcx + rbp]
inc rcx
inc dword [rsp + rax*4 + 0x30]
cmp rcx, rdx
jl 0x180054860
lea rax, [rsp + 0x38]
mov r14d, 0xc
sub r14, rax
mov r10d, 4
lea rax, [rsp + 0x38]
mov r15d, 0x10
sub r15, rax
mov r12d, 0x14
lea rax, [rsp + 0x38]
mov rcx, rbx
sub r12, rax
lea r8d, [r10 - 1]
nop word [rax + rax]
mov eax, dword [rsp + rcx + 0x30]
lea rdx, [rsp + 0x34]
add rdx, r10
cmp dword [rdx - 4], eax
jle 0x1800548c8
lea ebx, [r8 - 2]
mov rcx, r10
mov eax, dword [rsp + rcx + 0x30]
cmp dword [rdx], eax
jle 0x1800548df
lea rax, [rsp + 0x30]
mov rcx, rdx
sub rcx, rax
lea ebx, [r8 - 1]
mov r9d, dword [rdx + 4]
cmp r9d, dword [rsp + rcx + 0x30]
jle 0x1800548ee
lea rcx, [rdx + r14]
mov r9d, dword [rdx + 8]
mov eax, r8d
cmovle eax, ebx
cmp r9d, dword [rsp + rcx + 0x30]
jle 0x180054903
lea rcx, [rdx + r15]
lea r11d, [r8 + 1]
cmovle r11d, eax
mov eax, dword [rdx + 0xc]
cmp eax, dword [rsp + rcx + 0x30]
jle 0x180054918
lea rcx, [rdx + r12]
lea r9d, [r8 + 2]
cmovle r9d, r11d
add r8d, 5
add r10, 0x14
mov ebx, r9d
lea eax, [r8 - 2]
cmp eax, 0x100
jl 0x1800548b0
test rsi, rsi
jle 0x180054a36
sub rbp, rdi
nop word [rax + rax]
movzx eax, byte [rdi + rbp]
lea rdi, [rdi + 1]
sub eax, r9d
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x14
setge al
mov byte [rdi - 1], al
sub rsi, 1
jne 0x180054950
jmp 0x180054a36
cmp r9, rcx
je 0x180054a36
mov qword [rsp + 0x478], r13
xor ebx, ebx
nop word [rax + rax]
mov rax, qword [r9]
mov rcx, rbx
mov rdx, rax
mov qword [rsp + 0x20], rax
shr rdx, 0x20
test rsi, rsi
jle 0x180054a1f
movzx ebp, byte [rsp + 0x26]
movzx r15d, byte [rsp + 0x25]
movzx r12d, byte [rsp + 0x22]
movzx r13d, byte [rsp + 0x21]
movzx r10d, al
movzx r11d, dl
nop word [rax + rax]
mov rax, qword [r14 + 8]
mov r8d, dword [rax + rcx*4]
movzx eax, r8b
sub eax, r10d
cdq
xor eax, edx
sub eax, edx
cmp eax, r11d
jg 0x180054a13
mov eax, r8d
shr eax, 8
movzx eax, al
sub eax, r13d
cdq
xor eax, edx
sub eax, edx
cmp eax, r15d
jg 0x180054a13
shr r8d, 0x10
movzx eax, r8b
sub eax, r12d
cdq
xor eax, edx
sub eax, edx
cmp eax, ebp
jle 0x180054a17
mov byte [rcx + rdi], 1
inc rcx
cmp rcx, rsi
jl 0x1800549d0
add r9, 8
cmp r9, qword [rsp + 0x28]
jne 0x180054990
mov r13, qword [rsp + 0x478]
mov rcx, qword [rsp + 0x430]
xor rcx, rsp
call fcn.180093c30
lea r11, [rsp + 0x440]
mov rbx, qword [r11 + 0x40]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret