Function at 0x180054380
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov eax, dword [rsp + 0xd0]
lea r12, [rcx + 0x10a8a]
mov r15, rcx
mov dword [rsp + 0x20], eax
lea rsi, [rcx + 0x10b8a]
xor ecx, ecx
mov dword [rsp + 0x24], ecx
xor ebp, ebp
lea r14, [r15 + 0xba8a]
mov dword [rsp + 0x28], ebp
nop dword [rax]
nop word [rax + rax]
movzx eax, bpl
mov ebx, ecx
neg al
mov edi, ecx
mov r9d, 0x18
mov byte [rsp + 0xd0], al
mov r8, r14
mov rdx, r12
mov rcx, r15
call fcn.180004bb0
mov r9d, 0x18
mov r8, r14
mov rdx, rsi
mov rcx, r15
call fcn.180004bb0
movsx edx, byte [rsp + 0xd0]
mov rax, rsi
movsx r13d, bpl
mov ecx, 0x18
mov dword [rsp + 0x78], edx
mov dword [rsp + 0x2c], r13d
nop word [rax + rax]
add byte [rax - 0x100], bl
add ebx, r13d
add byte [rax], dil
lea rax, [rax + 1]
add edi, edx
sub rcx, 1
jne 0x180054440
mov dword [rsp + 0x48], 0xe8
lea r13d, [rcx + 1]
mov r14d, dword [rsp + 0x48]
xor sil, sil
mov word [rsp + 0x30], 0x48b
xor dil, dil
movzx ebp, word [rsp + 0x30]
xor ebx, ebx
nop dword [rax]
movsxd rax, ebx
mov ecx, dword [rax + r12]
lea rdx, [rax + r12]
cmp r14d, ecx
jne 0x1800544a0
cmp byte [rax + r12 + 4], 0
jne 0x1800544a0
mov dword [rsp + 0x20], ebx
movzx esi, r13b
cmp bp, cx
jne 0x1800544b3
cmp byte [rax + r12 + 2], 0x24
movzx edi, dil
cmove edi, r13d
mov rcx, r15
call fcn.18000a880
movzx eax, ax
test eax, eax
je 0x1800544c9
add ebx, eax
cmp ebx, 0x18
jl 0x180054480
test sil, sil
je 0x1800544d7
test dil, dil
jne 0x1800548a9
mov dword [rsp + 0x50], 0xe8
xor sil, sil
mov r14d, dword [rsp + 0x50]
xor dil, dil
mov word [rsp + 0x34], 0x48b
xor ebx, ebx
movzx ebp, word [rsp + 0x34]
nop dword [rax + rax]
movsxd rax, ebx
lea rdx, [r15 + 0x10b8a]
add rdx, rax
mov ecx, dword [rdx]
cmp r14d, ecx
jne 0x180054527
cmp byte [r15 + rax + 0x10b8e], 0
jne 0x180054527
mov dword [rsp + 0x20], ebx
movzx esi, r13b
cmp bp, cx
jne 0x18005453d
cmp byte [r15 + rax + 0x10b8c], 0x24
movzx edi, dil
cmove edi, r13d
mov rcx, r15
call fcn.18000a880
movzx eax, ax
test eax, eax
je 0x180054553
add ebx, eax
cmp ebx, 0x18
jl 0x180054500
mov r13d, dword [rsp + 0x2c]
test sil, sil
je 0x180054566
test dil, dil
jne 0x1800548bd
mov ebx, dword [rsp + 0x24]
lea r8, [r15 + 0xba8a]
mov r9d, 0x18
mov rdx, r12
mov rcx, r15
mov edi, ebx
call fcn.180004bb0
mov r9d, 0x18
lea r8, [r15 + 0xba8a]
lea rdx, [r15 + 0x10b8a]
mov rcx, r15
call fcn.180004bb0
mov edx, dword [rsp + 0x78]
lea rax, [r15 + 0x10b8a]
mov ecx, 0x18
sub byte [rax - 0x100], bl
add ebx, r13d
sub byte [rax], dil
lea rax, [rax + 1]
add edi, edx
sub rcx, 1
jne 0x1800545b0
mov dword [rsp + 0x58], 0xe8
lea r13d, [rcx + 1]
mov r14d, dword [rsp + 0x58]
xor sil, sil
mov word [rsp + 0x38], 0x48b
xor dil, dil
movzx ebp, word [rsp + 0x38]
xor ebx, ebx
nop dword [rax]
movsxd rax, ebx
mov ecx, dword [rax + r12]
lea rdx, [rax + r12]
cmp r14d, ecx
jne 0x180054610
cmp byte [rax + r12 + 4], 0
jne 0x180054610
mov dword [rsp + 0x20], ebx
movzx esi, r13b
cmp bp, cx
jne 0x180054623
cmp byte [rax + r12 + 2], 0x24
movzx edi, dil
cmove edi, r13d
mov rcx, r15
call fcn.18000a880
movzx eax, ax
test eax, eax
je 0x180054639
add ebx, eax
cmp ebx, 0x18
jl 0x1800545f0
test sil, sil
je 0x180054647
test dil, dil
jne 0x1800548cd
mov dword [rsp + 0x60], 0xe8
lea r12, [r15 + 0x10b8a]
mov r14d, dword [rsp + 0x60]
xor sil, sil
mov word [rsp + 0x3c], 0x48b
xor dil, dil
movzx ebp, word [rsp + 0x3c]
xor ebx, ebx
nop
movsxd rax, ebx
mov ecx, dword [rax + r12]
lea rdx, [rax + r12]
cmp r14d, ecx
jne 0x180054693
cmp byte [r15 + rax + 0x10b8e], 0
jne 0x180054693
mov dword [rsp + 0x20], ebx
movzx esi, r13b
cmp bp, cx
jne 0x1800546a9
cmp byte [r15 + rax + 0x10b8c], 0x24
movzx edi, dil
cmove edi, r13d
mov rcx, r15
call fcn.18000a880
movzx eax, ax
test eax, eax
je 0x1800546bf
add ebx, eax
cmp ebx, 0x18
jl 0x180054670
mov r13d, dword [rsp + 0x2c]
lea r12, [r15 + 0x10a8a]
test sil, sil
je 0x1800546d9
test dil, dil
jne 0x1800548de
mov ebx, dword [rsp + 0x24]
lea r8, [r15 + 0xba8a]
mov r9d, 0x18
mov rdx, r12
mov rcx, r15
mov edi, ebx
call fcn.180004bb0
mov r9d, 0x18
lea r8, [r15 + 0xba8a]
lea rdx, [r15 + 0x10b8a]
mov rcx, r15
call fcn.180004bb0
mov edx, dword [rsp + 0x78]
lea rax, [r15 + 0x10b8a]
mov ecx, 0x18
nop dword [rax]
nop word [rax + rax]
xor byte [rax - 0x100], bl
add ebx, r13d
xor byte [rax], dil
lea rax, [rax + 1]
add edi, edx
sub rcx, 1
jne 0x180054730
mov dword [rsp + 0x68], 0xe8
xor sil, sil
mov r14d, dword [rsp + 0x68]
xor dil, dil
mov word [rsp + 0x40], 0x48b
xor ebx, ebx
movzx ebp, word [rsp + 0x40]
nop dword [rax]
movsxd rax, ebx
mov ecx, dword [rax + r12]
lea rdx, [rax + r12]
cmp r14d, ecx
jne 0x18005478f
cmp byte [rax + r12 + 4], 0
jne 0x18005478f
mov dword [rsp + 0x20], ebx
mov sil, 1
mov r13d, 1
cmp bp, cx
jne 0x1800547a8
cmp byte [rax + r12 + 2], 0x24
movzx edi, dil
cmove edi, r13d
mov rcx, r15
call fcn.18000a880
movzx eax, ax
test eax, eax
je 0x1800547be
add ebx, eax
cmp ebx, 0x18
jl 0x180054770
test sil, sil
je 0x1800547cc
test dil, dil
jne 0x1800548ee
mov dword [rsp + 0x70], 0xe8
lea r12, [r15 + 0x10b8a]
mov r14d, dword [rsp + 0x70]
xor sil, sil
mov word [rsp + 0x44], 0x48b
xor dil, dil
movzx ebp, word [rsp + 0x44]
xor ebx, ebx
nop dword [rax]
nop dword [rax + rax]
movsxd rax, ebx
mov ecx, dword [rax + r12]
lea rdx, [rax + r12]
cmp r14d, ecx
jne 0x180054822
cmp byte [rax + r15 + 0x10b8e], 0
jne 0x180054822
mov dword [rsp + 0x20], ebx
mov sil, 1
cmp bp, cx
jne 0x180054838
cmp byte [rax + r15 + 0x10b8c], 0x24
movzx edi, dil
cmove edi, r13d
mov rcx, r15
call fcn.18000a880
movzx eax, ax
test eax, eax
je 0x18005484e
add ebx, eax
cmp ebx, 0x18
jl 0x180054800
lea r12, [r15 + 0x10a8a]
test sil, sil
je 0x180054863
test dil, dil
jne 0x180054902
mov ebp, dword [rsp + 0x28]
lea rsi, [r15 + 0x10b8a]
mov ecx, dword [rsp + 0x24]
lea r14, [r15 + 0xba8a]
inc ebp
mov dword [rsp + 0x28], ebp
cmp ebp, 0x100
jl 0x1800543e0
inc ecx
mov dword [rsp + 0x24], ecx
cmp ecx, 0x100
jge 0x180054936
lea rsi, [r15 + 0x10b8a]
jmp 0x1800543c4
mov rax, qword [rsp + 0xe0]
mov dword [rax], 0
mov eax, dword [rsp + 0x28]
jmp 0x180054918
mov rax, qword [rsp + 0xe0]
mov dword [rax], 0
jmp 0x180054910
mov rax, qword [rsp + 0xe0]
mov dword [rax], r13d
mov eax, dword [rsp + 0x28]
jmp 0x180054918
mov rax, qword [rsp + 0xe0]
mov dword [rax], 1
jmp 0x180054910
mov rax, qword [rsp + 0xe0]
mov dword [rax], 2
mov eax, dword [rsp + 0x28]
jmp 0x180054918
mov rax, qword [rsp + 0xe0]
mov dword [rax], 2
movzx eax, byte [rsp + 0xd0]
mov rcx, qword [rsp + 0xe8]
mov byte [rcx], al
mov eax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0xd8]
mov byte [rcx], al
mov eax, dword [rsp + 0x20]
jmp 0x18005493b
mov eax, 0xffffffff
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret