Function at 0x1800ba6e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov rax, qword [0x1802b7c00]
xor rax, rsp
mov qword [rsp + 0x60], rax
movzx r12d, r8b
mov byte [rsp + 0x30], r12b
mov rbp, rdx
mov rsi, rcx
cmp dword [rcx + 0xc], 1
jl 0x1800ba726
mov rdx, qword [rcx]
mov eax, dword [rbp + 0xc]
inc eax
mov dword [rdx + 0x1b8], eax
xor r14d, r14d
mov r13d, r14d
mov rax, qword [rbp + 0x20]
mov ecx, dword [rax + 8]
mov r15d, r14d
cmp ecx, dword [0x1802c4354]
cmove r15, rax
mov ebx, r14d
test r15, r15
je 0x1800ba75e
mov rcx, qword [r15 + 0x20]
mov eax, dword [0x1802c43cc]
cmp dword [rcx + 8], eax
cmove rbx, rcx
mov r13, rbp
jmp 0x1800ba76b
cmp ecx, dword [0x1802c43cc]
cmove rbx, rax
mov r15, rbp
mov rdi, 0xffffffffffffffff
test rbx, rbx
je 0x1800ba971
cmp dword [rsi + 8], 1
jl 0x1800ba971
mov rax, qword [rbx + 0x20]
mov qword [rsp + 0x50], rax
lea rcx, [rsi + 0x90]
lea rdx, [rsp + 0x50]
call fcn.1800a8960
lea rcx, [rax + 8]
test rax, rax
cmove rcx, r14
test rcx, rcx
je 0x1800ba7b8
cmp dword [rcx], r14d
jne 0x1800ba971
mov rax, qword [rbx + 0x20]
mov qword [rsp + 0x50], rax
mov rdx, rdi
inc rdx
cmp byte [rax + rdx], r14b
jne 0x1800ba7c4
mov qword [rsp + 0x58], rdx
lea rdx, [rsp + 0x50]
mov rcx, qword [rsi]
call fcn.1800ae4c0
mov r14d, eax
mov rdx, qword [r15 + 0x28]
mov qword [rsp + 0x50], rdx
mov r8, rdi
nop
inc r8
cmp byte [rdx + r8], 0
jne 0x1800ba7f0
mov qword [rsp + 0x58], r8
lea rdx, [rsp + 0x50]
mov rcx, qword [rsi]
call fcn.1800ae4c0
mov ebx, eax
test r13, r13
je 0x1800ba840
mov rdx, qword [r13 + 0x28]
mov qword [rsp + 0x50], rdx
mov r8, rdi
nop
inc r8
cmp byte [rdx + r8], 0
jne 0x1800ba820
mov qword [rsp + 0x58], r8
lea rdx, [rsp + 0x50]
mov rcx, qword [rsi]
call fcn.1800ae4c0
mov ecx, eax
jmp 0x1800ba842
mov ecx, edi
test r14d, r14d
js 0x1800bab16
test ebx, ebx
js 0x1800bab16
test r13, r13
je 0x1800ba860
test ecx, ecx
js 0x1800bab16
cmp r14d, 0x400
jge 0x1800ba971
cmp ebx, 0x400
jge 0x1800ba971
cmp ecx, 0x400
jge 0x1800ba971
shl r14d, 0xa
or r14d, ebx
shl r14d, 0xa
mov eax, r14d
or eax, ecx
or eax, 0xc0000000
bts r14d, 0x1f
test r13, r13
cmovne r14d, eax
mov edx, r14d
mov rcx, qword [rsi]
call fcn.1800ae620
cmp eax, 0x7fff
ja 0x1800ba971
mov rbx, qword [rsi]
movzx ecx, ax
shl ecx, 8
or ecx, r12d
shl ecx, 8
or ecx, 0xc
mov dword [rsp + 0x50], ecx
mov rdx, qword [rbx + 0x30]
cmp rdx, qword [rbx + 0x38]
je 0x1800ba8e5
mov dword [rdx], ecx
add qword [rbx + 0x30], 4
jmp 0x1800ba8f3
lea r8, [rsp + 0x50]
lea rcx, [rbx + 0x28]
call fcn.18009aba0
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x1800ba914
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x1800ba919
call fcn.18009aba0
mov rbx, qword [rsi]
mov dword [rsp + 0x50], r14d
lea rcx, [rbx + 0x28]
mov rdx, qword [rbx + 0x30]
cmp rdx, qword [rbx + 0x38]
je 0x1800ba939
mov dword [rdx], r14d
add qword [rbx + 0x30], 4
jmp 0x1800ba943
lea r8, [rsp + 0x50]
call fcn.18009aba0
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x1800ba967
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x1800baae0
call fcn.18009aba0
jmp 0x1800baae0
mov qword [rsp + 0x38], rsi
mov r14d, dword [rsi + 0x40c]
mov dword [rsp + 0x40], r14d
mov rbx, qword [rbp + 0x20]
mov rdx, rbx
mov rcx, rsi
call fcn.1800bc730
mov r12d, eax
test eax, eax
jns 0x1800ba9dd
lea ecx, [r14 + 1]
cmp ecx, 0xff
ja 0x1800bab27
mov dword [rsi + 0x40c], ecx
mov eax, 0x410
mov edx, 0x40c
cmp dword [rsi + 0x410], ecx
cmovb eax, edx
mov eax, dword [rax + rsi]
mov dword [rsi + 0x410], eax
movzx r8d, r14b
mov rdx, rbx
mov rcx, rsi
call fcn.1800bbaa0
movzx r12d, r14b
cmp dword [rsi + 0xc], 1
jl 0x1800ba9f1
mov rcx, qword [rsi]
mov eax, dword [rbp + 0x30]
inc eax
mov dword [rcx + 0x1b8], eax
mov rbx, qword [rbp + 0x28]
inc rdi
cmp byte [rbx + rdi], 0
jne 0x1800ba9f5
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rdi
lea rdx, [rsp + 0x50]
mov rcx, qword [rsi]
call fcn.1800ae4c0
mov r15d, eax
test eax, eax
js 0x1800bab05
mov r8, rdi
test rdi, rdi
je 0x1800baa4e
lea r9, [rbx - 1]
add r9, rdi
nop
mov edx, edi
shl edx, 5
mov eax, edi
shr eax, 2
add edx, eax
movzx eax, byte [r9]
add edx, eax
xor edi, edx
lea r9, [r9 - 1]
sub r8, 1
jne 0x1800baa30
mov byte [rsp + 0x20], dil
movzx r9d, r12b
movzx r8d, byte [rsp + 0x30]
mov edx, reloc.WS2_32.dll_ntohs
mov rcx, qword [rsi]
call fcn.1800aeaa0
mov rbx, qword [rsi]
mov dword [rsp + 0x50], r15d
lea rcx, [rbx + 0x28]
mov rdx, qword [rbx + 0x30]
cmp rdx, qword [rbx + 0x38]
je 0x1800baa8a
mov dword [rdx], r15d
add qword [rbx + 0x30], 4
jmp 0x1800baa94
lea r8, [rsp + 0x50]
call fcn.18009aba0
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x1800baab5
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x1800baaba
call fcn.18009aba0
movzx r8d, r12b
mov dword [rsp + 0x20], 2
mov r9d, 4
mov rdx, qword [rbp + 0x20]
mov rcx, rsi
call fcn.1800c0850
nop
mov dword [rsi + 0x40c], r14d
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1801fc6e0
mov rbx, qword [rsp + 0xc0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rcx, [rbp + 0xc]
lea rdx, str.Exceeded_constant_limit__simplify_the_code_to_compile
call fcn.1800b3cc0
nop
lea rcx, [rbp + 0xc]
lea rdx, str.Exceeded_constant_limit__simplify_the_code_to_compile
call fcn.1800b3cc0
nop
lea rcx, [rbx + 0xc]
mov r9d, 0xff
mov r8d, 1
lea rdx, str.Out_of_registers_when_trying_to_allocate__d_registers:_exceeded_limit__d
call fcn.1800b3cc0
int3