Function at 0x180006049
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rsi, rcx
cmp qword [rcx + 0x18], 0
je 0x1800060b3
mov edi, dword [0x180017308]
mov rbx, rdi
shl rbx, 4
imul eax, dword [0x1800149c0], 0xfcd48bf
xor eax, 0x6d248691
imul eax, dword [0x1800149c4]
cmp eax, 0x30e4b026
je 0x1800060ac
movzx eax, word [rsi + 0x10]
mov rcx, qword [rsi + 0x18]
cmp rdi, rax
jae 0x1800060ae
mov rcx, qword [rcx + rbx]
call sub.msvcrt.dll_free
inc rdi
add rbx, 0x10
jmp 0x180006070
jmp 0x1800060ac
call sub.msvcrt.dll_free
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x1800061a7
xor edi, edi
movzx eax, word [rsi + 0x12]
cmp edi, eax
jae 0x1800061a2
mov ebx, edi
shl rbx, 5
mov rcx, qword [rcx + rbx]
call sub.msvcrt.dll_free
mov rcx, qword [rsi + 0x20]
mov r8d, dword [rcx + rbx + 8]
cmp r8d, 2
je 0x1800060fb
cmp r8d, 1
je 0x1800060fb
cmp r8d, dword [0x1800149c8]
jne 0x180006122
mov rax, qword [rcx + rbx + 0x18]
mov rcx, qword [rax]
call sub.msvcrt.dll_free
mov rax, qword [rsi + 0x20]
mov rcx, qword [rax + rbx + 0x18]
call sub.msvcrt.dll_free
add edi, dword [0x1800149e0]
mov rcx, qword [rsi + 0x20]
jmp 0x1800060c2
mov eax, 0xab0151cb
xor edx, edx
div dword [0x1800149cc]
imul eax, eax, 0x64f4f610
cmp eax, 0x798d32b1
jae 0x1800061a0
cmp r8d, 0xf
je 0x18000615c
cmp r8d, dword [0x1800149d0]
je 0x1800060fb
mov eax, dword [0x1800149d8]
xor eax, dword [0x1800149d4]
cmp r8d, eax
jne 0x180006167
mov rax, qword [rcx + rbx + 0x18]
add rax, 8
jmp 0x180006100
cmp r8d, 0x21
jne 0x180006108
mov bpl, byte [0x18001730c]
mov rax, qword [rcx + rbx + 0x18]
mov rcx, qword [rax + 8]
cmp bpl, byte [rax]
jae 0x180006103
movzx eax, bpl
shl rax, 4
mov rcx, qword [rcx + rax]
call sub.msvcrt.dll_free
add bpl, byte [0x1800149dc]
mov rcx, qword [rsi + 0x20]
jmp 0x180006174
jmp 0x1800061a0
call sub.msvcrt.dll_free
mov rdi, qword [rsi + 0x28]
test rdi, rdi
je 0x1800061df
mov ebx, 0x345d90fc
sub ebx, dword [0x1800149e4]
and ebx, 0x62b19ae6
add ebx, 0xc3568ef9
mov ebp, dword [0x1800149ec]
xor ebp, dword [0x1800149e8]
mov rcx, rdi
call sub.msvcrt.dll_free
cmp ebx, ebp
je 0x1800061b0
mov rcx, qword [rsi + 0x30]
test rcx, rcx
je 0x18000631c
mov edi, dword [0x180017310]
mov ebx, 0xd9f2645
movzx eax, word [rsi + 0x16]
cmp edi, eax
jae 0x180006317
mov r14d, edi
shl r14, 5
mov rcx, qword [rcx + r14]
call sub.msvcrt.dll_free
mov r15, qword [rsi + 0x30]
mov eax, dword [r15 + r14 + 8]
cmp eax, 1
jne 0x180006263
mov eax, dword [0x1800149f4]
sub eax, dword [0x1800149f0]
cmp eax, 0xbaf57cb7
jne 0x180006241
mov rax, qword [r15 + r14 + 0x18]
mov rcx, qword [rax]
call sub.msvcrt.dll_free
add r15, r14
add r15, 0x18
mov ebp, dword [0x1800149f8]
mov rax, qword [r15]
mov rcx, qword [rax]
call sub.msvcrt.dll_free
cmp ebp, 0xda7a5a1e
je 0x180006248
jmp 0x18000627d
cmp eax, dword [0x1800149fc]
je 0x180006270
cmp eax, 5
jne 0x18000629a
mov rax, qword [r15 + r14 + 0x18]
mov rcx, qword [rax]
call sub.msvcrt.dll_free
mov rax, qword [rsi + 0x30]
mov rcx, qword [rax + r14 + 0x18]
call sub.msvcrt.dll_free
add edi, dword [0x180014a18]
mov rcx, qword [rsi + 0x30]
jmp 0x1800061f7
cmp eax, dword [0x180014a00]
jne 0x1800062ad
mov rax, qword [r15 + r14 + 0x18]
add rax, 8
jmp 0x180006275
cmp eax, 0x10
je 0x180006270
mov ecx, dword [0x180014a08]
xor ecx, dword [0x180014a04]
cmp eax, ecx
je 0x1800062a2
cmp eax, 0x21
jne 0x1800062f9
xor r12d, r12d
xor r13d, r13d
mov rax, qword [r15 + r14 + 0x18]
movzx edx, byte [rax]
mov rcx, qword [rax + 8]
cmp r13, rdx
jae 0x1800062f4
mov rcx, qword [rcx + r12]
call sub.msvcrt.dll_free
inc r13
mov r15, qword [rsi + 0x30]
add r12, 0x10
jmp 0x1800062cd
call sub.msvcrt.dll_free
mov eax, dword [0x180014a0c]
and eax, ebx
xor edx, edx
div dword [0x180014a10]
cmp eax, dword [0x180014a14]
jbe 0x18000627d
jmp 0x180006315
call sub.msvcrt.dll_free
mov rcx, rsi
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp sub.msvcrt.dll_free