Function at 0x1800558bc
Capabilities:
Encode data using xor

Disassembly:
mov r10d, dword [rcx + 0x148]
test r10d, r10d
je 0x180054af5
cmp r10d, 1
je 0x180054af0
mov eax, 0xffffbf00
ret
jmp 0x180055b80
jmp 0x1800558bc
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x30
mov edi, r9d
mov rbp, r8
mov r15, rdx
mov rbx, rcx
cmp r9d, 1
jne 0x1800558f9
cmp dword [rcx + 0x148], 0
je 0x1800558f9
mov eax, 0xffffbf80
jmp 0x180055a03
mov r9, qword [rcx + 8]
mov rsi, qword [rsp + 0x88]
mov ecx, dword [rsp + 0x70]
mov r8, qword [rsp + 0x80]
mov edx, dword [rsp + 0x78]
mov qword [rsp + 0x20], rsi
call fcn.180056574
test eax, eax
jne 0x180055a03
test edi, edi
jne 0x18005593e
mov r8, rsi
mov rdx, rsi
mov rcx, rbx
call fcn.180054f8c
jmp 0x180055a03
mov rdx, qword [rbx + 8]
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov rdi, rax
test rax, rax
jne 0x18005595f
mov eax, 0xfffffff0
jmp 0x180055a03
mov rdx, qword [rbx + 8]
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov r14, rax
test rax, rax
jne 0x180055981
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x180055955
mov r9, rsi
mov qword [rsp + 0x20], rdi
mov r8, rbp
mov rdx, r15
mov rcx, rbx
call fcn.180054b20
mov ebp, eax
test eax, eax
jne 0x1800559ef
mov r8, r14
mov rdx, rdi
mov rcx, rbx
call fcn.180054f8c
mov ebp, eax
test eax, eax
jne 0x1800559ef
mov r8, qword [rbx + 8]
xor cl, cl
test r8, r8
je 0x1800559e4
mov r9, rsi
mov rdx, r14
sub r9, r14
mov r10, r8
mov al, byte [r9 + rdx]
xor al, byte [rdx]
inc rdx
or cl, al
sub r10, 1
jne 0x1800559c8
test cl, cl
je 0x1800559e4
mov ebp, 0xffffbd00
jmp 0x1800559ef
mov rdx, rdi
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, ebp
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x30
pop r15
pop r14
pop rdi
ret
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0xc0
mov rax, qword [0x1800c33b0]
xor rax, rsp
mov qword [rbp - 9], rax
mov rsi, qword [rbp + 0x7f]
mov r13, rdx
mov qword [rbp - 0x51], rdx
mov r15, rcx
mov rdx, qword [rbp + 0x77]
mov ecx, dword [rbp + 0x67]
mov qword [rbp - 0x61], rdx
mov dword [rsp + 0x34], r9d
mov qword [rsp + 0x38], r8
cmp r9d, 1
jne 0x180055be6
cmp dword [r15 + 0x148], r9d
je 0x180055be6
mov eax, 0xffffbf80
jmp 0x180055de9
test r13, r13
je 0x180055bdc
mov r14, qword [r15 + 8]
test ecx, ecx
je 0x180055c0e
call fcn.180054208
test rax, rax
je 0x180055bdc
mov rcx, rax
call fcn.180053f88
movzx edi, al
mov dword [rsp + 0x30], edi
jmp 0x180055c15
mov eax, dword [rbp + 0x6f]
mov dword [rsp + 0x30], eax
mov ecx, dword [r15 + 0x14c]
call fcn.180054208
mov rbx, rax
test rax, rax
je 0x180055bdc
mov rcx, rax
call fcn.180053f88
movzx r12d, al
lea rax, [r12 + r12]
cmp r14, rax
jb 0x180055bdc
add rax, 2
cmp r14, rax
jb 0x180055c4c
mov edi, r12d
jmp 0x180055c56
mov rdi, r14
sub rdi, r12
sub rdi, 2
mov r8, r14
xor edx, edx
mov rcx, rsi
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [rsp + 0x38]
lea rdx, [rbp - 0x49]
mov r8, rdi
call r13
test eax, eax
je 0x180055c80
add eax, 0xffffbb80
jmp 0x180055de9
lea rcx, [r15 + 0x10]
call fcn.1800572d8
dec rax
lea rdx, [rbp - 0x49]
mov r13, rsi
mov qword [rbp - 0x59], rax
sub r13, rdi
mov r8, rdi
sub r13, r12
add r13, r14
mov byte [r13 - 2], 1
dec r13
mov rcx, r13
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rbp - 0x79]
add r13, rdi
call fcn.1800607f4
xor r8d, r8d
lea rcx, [rbp - 0x79]
mov rdx, rbx
call fcn.180054284
mov ebx, eax
test eax, eax
jne 0x180055dab
lea rcx, [rbp - 0x79]
call fcn.1800542fc
mov ebx, eax
test eax, eax
jne 0x180055dab
lea r8d, [rax + 8]
mov rdx, r13
lea rcx, [rbp - 0x79]
call fcn.180054318
mov ebx, eax
test eax, eax
jne 0x180055dab
mov r8d, dword [rsp + 0x30]
lea rcx, [rbp - 0x79]
mov rdx, qword [rbp - 0x61]
call fcn.180054318
mov ebx, eax
test eax, eax
jne 0x180055dab
mov r8, rdi
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x79]
call fcn.180054318
mov ebx, eax
test eax, eax
jne 0x180055dab
mov rdx, r13
lea rcx, [rbp - 0x79]
call fcn.180053f14
mov ebx, eax
test eax, eax
jne 0x180055dab
test byte [rbp - 0x59], 7
mov eax, ebx
mov rdx, r14
mov r9, r12
sete al
mov r8, r13
sub rdx, rax
sub rdx, r12
dec rdx
lea rcx, [rax + rsi]
lea rax, [rbp - 0x79]
mov qword [rsp + 0x20], rax
call fcn.180056204
mov ebx, eax
test eax, eax
jne 0x180055dab
lea rcx, [r15 + 0x10]
call fcn.1800572d8
dec rax
shl r14b, 3
mov cl, r14b
lea edx, [rbx + 0x40]
sub cl, al
mov eax, 0xff
sar eax, cl
lea rcx, [rbp - 0x49]
and byte [rsi], al
mov byte [r12 + r13], 0xbc
call fcn.180053ed4
lea rcx, [rbp - 0x79]
call fcn.180053f30
test ebx, ebx
je 0x180055dbc
mov eax, ebx
jmp 0x180055de9
cmp dword [rsp + 0x34], 0
mov rcx, r15
jne 0x180055dd3
mov r8, rsi
mov rdx, rsi
call fcn.180054f8c
jmp 0x180055de9
mov r8, qword [rsp + 0x38]
mov r9, rsi
mov rdx, qword [rbp - 0x51]
mov qword [rsp + 0x20], rsi
call fcn.180054b20
mov rcx, qword [rbp - 9]
xor rcx, rsp
call fcn.180084a40
mov rbx, qword [rsp + 0x118]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret