Function at 0x180006460
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x1058]
mov eax, 0x1158
call fcn.180361950
sub rsp, rax
movdqa xmm0, xmmword [str.__n_a4]
xor r15d, r15d
mov qword [rsp + 0x70], r15
mov r14, rdx
mov qword [rbp - 0x70], r15
movdqu xmmword [rbp - 0x10], xmm0
mov qword [rsp + 0x40], r15
mov rax, qword [rsp + 0x40]
mov byte [rbp + 0x10a8], 0
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x40]
add cl, 0x72
xor cl, byte [rbp + rax - 0xf]
mov rax, qword [rsp + 0x40]
mov byte [rbp + rax - 0xf], cl
mov rax, qword [rsp + 0x40]
inc rax
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
cmp rax, 0xe
jb 0x1800064c0
mov byte [rbp - 1], r15b
call fcn.180001810
mov rcx, qword gs:[0x58]
mov rdi, rax
mov edx, dword [0x18039b468]
mov eax, 4
mov rbx, qword [rcx + rdx*8]
add rbx, rax
mov ecx, dword [rbx]
cmp dword [0x18039d510], ecx
jle 0x180006552
lea rcx, [0x18039d510]
call fcn.180360f8c
cmp dword [0x18039d510], 0xffffffff
jne 0x180006552
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rcx, [0x18039d510]
mov qword [0x1803a15b8], rax
call fcn.180360f2c
mov eax, dword [rbx]
cmp dword [0x1803a1558], eax
jle 0x18000658b
lea rcx, [0x1803a1558]
call fcn.180360f8c
cmp dword [0x1803a1558], 0xffffffff
jne 0x18000658b
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x1803a1558]
mov qword [0x1803a1560], rax
call fcn.180360f2c
mov qword [rsp + 0x1198], r12
mov rcx, rdi
mov qword [rsp + 0x1150], r13
call qword [0x1803a15b8]
mov rcx, rax
lea rdx, [rbp - 0xf]
call qword [0x1803a1560]
mov rsi, rax
test rax, rax
je 0x180006e79
xor eax, eax
mov dword [rsp + 0x48], 0x28230ab9
mov byte [rsp + 0x56], al
mov dword [rsp + 0x4c], 0x3a3b2f1a
mov dword [rsp + 0x50], 0xa101533
mov word [rsp + 0x54], 0x20a
mov qword [rsp + 0x40], r15
mov rax, qword [rsp + 0x40]
nop dword [rax]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x40]
add cl, 0x59
xor cl, byte [rsp + rax + 0x49]
mov rax, qword [rsp + 0x40]
mov byte [rsp + rax + 0x49], cl
mov rax, qword [rsp + 0x40]
inc rax
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
cmp rax, 0xd
jb 0x1800065f0
mov byte [rsp + 0x56], r15b
call fcn.180001810
mov ecx, dword [rbx]
mov rdi, rax
cmp dword [0x18039d510], ecx
jle 0x180006668
lea rcx, [0x18039d510]
call fcn.180360f8c
cmp dword [0x18039d510], 0xffffffff
jne 0x180006668
mov rcx, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x1803a15b8], rcx
lea rcx, [0x18039d510]
call fcn.180360f2c
mov eax, dword [rbx]
cmp dword [0x1803a1558], eax
jle 0x1800066a1
lea rcx, [0x1803a1558]
call fcn.180360f8c
cmp dword [0x1803a1558], 0xffffffff
jne 0x1800066a1
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x1803a1558]
mov qword [0x1803a1560], rax
call fcn.180360f2c
mov rcx, rdi
call qword [0x1803a15b8]
mov rcx, rax
lea rdx, [rsp + 0x49]
call qword [0x1803a1560]
mov qword [rbp - 0x18], rax
test rax, rax
je 0x180006e79
movdqa xmm0, xmmword [0x18038f670]
movdqu xmmword [rbp - 0x3e], xmm0
mov word [rbp - 0x2e], 0x33
mov qword [rsp + 0x40], r15
mov rcx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x40]
add cl, 0x47
xor cl, byte [rbp + rax - 0x3d]
mov rax, qword [rsp + 0x40]
mov byte [rbp + rax - 0x3d], cl
mov rax, qword [rsp + 0x40]
inc rax
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
cmp rax, 0x10
jb 0x1800066e2
mov byte [rbp - 0x2d], r15b
call fcn.1800018d0
mov ecx, dword [rbx]
mov rdi, rax
cmp dword [0x18039d510], ecx
jle 0x180006759
lea rcx, [0x18039d510]
call fcn.180360f8c
cmp dword [0x18039d510], 0xffffffff
jne 0x180006759
mov rcx, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x1803a15b8], rcx
lea rcx, [0x18039d510]
call fcn.180360f2c
mov eax, dword [rbx]
cmp dword [0x1803a1558], eax
jle 0x180006792
lea rcx, [0x1803a1558]
call fcn.180360f8c
cmp dword [0x1803a1558], 0xffffffff
jne 0x180006792
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x1803a1558]
mov qword [0x1803a1560], rax
call fcn.180360f2c
mov rcx, rdi
call qword [0x1803a15b8]
mov rcx, rax
lea rdx, [rbp - 0x3d]
call qword [0x1803a1560]
mov qword [rbp - 0x20], rax
mov r13, rax
test rax, rax
je 0x180006e79
movdqa xmm0, xmmword [0x18038fb80]
xor eax, eax
movdqu xmmword [rbp - 0x68], xmm0
mov byte [rbp - 0x54], al
mov dword [rbp - 0x58], 0xa4b4c6fc
mov qword [rsp + 0x40], r15
mov rcx, qword [rsp + 0x40]
nop dword [rax + rax]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x40]
sub cl, 0x51
xor cl, byte [rbp + rax - 0x67]
mov rax, qword [rsp + 0x40]
mov byte [rbp + rax - 0x67], cl
mov rax, qword [rsp + 0x40]
inc rax
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
cmp rax, 0x13
jb 0x1800067e0
mov byte [rbp - 0x54], r15b
call fcn.1800015d0
mov ecx, dword [rbx]
mov rdi, rax
cmp dword [0x18039d510], ecx
jle 0x180006857
lea rcx, [0x18039d510]
call fcn.180360f8c
cmp dword [0x18039d510], 0xffffffff
jne 0x180006857
mov rcx, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x1803a15b8], rcx
lea rcx, [0x18039d510]
call fcn.180360f2c
mov eax, dword [rbx]
cmp dword [0x1803a1558], eax
jle 0x180006890
lea rcx, [0x1803a1558]
call fcn.180360f8c
cmp dword [0x1803a1558], 0xffffffff
jne 0x180006890
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x1803a1558]
mov qword [0x1803a1560], rax
call fcn.180360f2c
mov rcx, rdi
call qword [0x1803a15b8]
mov rcx, rax
lea rdx, [rbp - 0x67]
call qword [0x1803a1560]
mov r12, rax
test rax, rax
je 0x180006e79
movdqa xmm0, xmmword [0x18038f9e0]
xor eax, eax
movdqu xmmword [rbp - 0x53], xmm0
mov byte [rbp - 0x3f], al
mov dword [rbp - 0x43], 0x899b91bb
mov qword [rsp + 0x40], r15
mov rcx, qword [rsp + 0x40]
nop word [rax + rax]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x40]
sub cl, 0x17
xor cl, byte [rbp + rax - 0x52]
mov rax, qword [rsp + 0x40]
mov byte [rbp + rax - 0x52], cl
mov rax, qword [rsp + 0x40]
inc rax
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
cmp rax, 0x13
jb 0x1800068e0
mov byte [rbp - 0x3f], r15b
call fcn.1800015d0
mov edx, dword [rbx]
mov rdi, rax
cmp dword [0x18039d510], edx
jle 0x180006957
lea rcx, [0x18039d510]
call fcn.180360f8c
cmp dword [0x18039d510], 0xffffffff
jne 0x180006957
mov rdx, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rcx, [0x18039d510]
mov qword [0x1803a15b8], rdx
call fcn.180360f2c
mov eax, dword [rbx]
cmp dword [0x1803a1558], eax
jle 0x180006990
lea rcx, [0x1803a1558]
call fcn.180360f8c
cmp dword [0x1803a1558], 0xffffffff
jne 0x180006990
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x1803a1558]
mov qword [0x1803a1560], rax
call fcn.180360f2c
mov rcx, rdi
call qword [0x1803a15b8]
mov rcx, rax
lea rdx, [rbp - 0x52]
call qword [0x1803a1560]
mov r10, rax
test rax, rax
je 0x180006e79
lea rax, [rbp + 0x850]
mov r9d, 0xffffffff
mov qword [rbp + 0x38], rax
mov r8, r14
mov qword [rsp + 0x40], 0x679
mov qword [rsp + 0x60], 0x187
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x60]
add rdx, rcx
mov qword [rsp + 0x68], rdx
xor edx, edx
mov qword [rsp + 0x40], 2
mov qword [rsp + 0x60], r15
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x40]
add rcx, rax
mov qword [rsp + 0x60], rcx
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x68]
div rcx
lea edx, [r9 + 2]
xor ecx, ecx
mov dword [rsp + 0x28], eax
lea rax, [rbp + 0x850]
mov qword [rsp + 0x20], rax
call r10
test eax, eax
je 0x180006e70
lea rcx, [rbp + 0x850]
call rsi
mov rbx, qword [rbp + 0x10a0]
mov r14, rax
mov rcx, rbx
mov qword [rbp + 0x10], rax
call rsi
mov rdi, qword [rbp + 0x1090]
mov r15, rax
mov qword [rbp + 0x18], rax
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x180006e58
mov rdx, qword [rcx]
mov r8, qword [rdx + 0x90]
lea rdx, [rbp - 0x78]
call r8
test eax, eax
js 0x180006da8
mov rcx, qword [rbp - 0x78]
lea rdx, [rbp]
xor r13b, r13b
mov rax, qword [rcx]
call qword [rax + 0x58]
mov r9, qword [rbp]
xor ecx, ecx
mov qword [rbp - 0x80], rcx
mov esi, 1
mov dword [rsp + 0x78], ecx
test r9, r9
je 0x180006ad4
mov rax, qword [r9]
lea r8, [rbp - 0x80]
lea rdx, [0x18038ed68]
mov rcx, r9
call qword [rax]
mov esi, eax
test eax, eax
js 0x180006ca5
mov rcx, qword [rbp - 0x80]
mov r14d, 1
lea r15d, [r14 + 8]
nop
cmp esi, r14d
je 0x180006c8d
mov word [rbp + 0x20], r14w
lea r9, [rsp + 0x78]
mov rax, qword [rcx]
lea r8, [rbp + 0x20]
mov edx, r14d
call qword [rax + 0x18]
mov esi, eax
cmp eax, r14d
je 0x180006c80
xor edi, edi
mov qword [rbp - 0x28], rdi
test eax, eax
js 0x180006c8d
mov rcx, qword [rbp + 0x28]
lea r8, [rbp - 0x28]
mov word [rbp + 0x20], r15w
lea rdx, [0x18038e968]
mov rax, qword [rcx]
call qword [rax]
mov esi, eax
test eax, eax
js 0x180006c8d
mov rcx, qword [rbp - 0x28]
lea rdx, [rbp + 8]
mov rax, qword [rcx]
call qword [rax + 0x58]
test eax, eax
js 0x180006c80
mov qword [rsp + 0x38], rdi
lea rax, [rbp + 0x50]
mov qword [rbp + 0x40], rax
lea r9d, [rdi - 1]
mov qword [rsp + 0x60], 0x141
xor edx, edx
mov qword [rsp + 0x68], 0x2bf
mov rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x60]
add rcx, rax
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x68], rcx
xor ecx, ecx
mov rax, qword [rsp + 0x68]
mov r8, qword [rbp + 8]
mov dword [rsp + 0x28], eax
lea rax, [rbp + 0x50]
mov qword [rsp + 0x20], rax
call r12
test eax, eax
je 0x180006c80
mov qword [rsp + 0x38], rdi
lea rax, [rbp + 0x450]
mov qword [rbp + 0x48], rax
lea r9d, [rdi - 1]
mov qword [rsp + 0x60], 0xfc
mov r8, rbx
mov qword [rsp + 0x68], 0x304
xor edx, edx
mov rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x60]
add rcx, rax
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x68], rcx
xor ecx, ecx
mov rax, qword [rsp + 0x68]
mov dword [rsp + 0x28], eax
lea rax, [rbp + 0x450]
mov qword [rsp + 0x20], rax
call r12
test eax, eax
je 0x180006c80
lea r8, [rbp + 0x50]
lea r11, [rbp + 0x450]
nop dword [rax]
movsx eax, byte [r11]
lea r11, [r11 + 1]
movsx r9d, byte [r8]
mov edx, eax
sub al, 0x41
cmp al, 0x19
lea ecx, [rdx + 0x20]
cmova ecx, edx
lea r10d, [r9 - 0x41]
cmp r10b, 0x19
lea ebx, [r9 + 0x20]
mov eax, ebx
cmova eax, r9d
cmp eax, ecx
jne 0x180006c58
inc r8
test r9b, r9b
jne 0x180006c20
jmp 0x180006c75
movsx eax, byte [r11 - 1]
mov ecx, eax
sub al, 0x41
cmp al, 0x19
lea edx, [rcx + 0x20]
cmova edx, ecx
cmp r10b, 0x19
cmova ebx, r9d
sub ebx, edx
jne 0x180006c79
movzx r13d, r14b
mov rbx, qword [rbp + 0x10a0]
test esi, esi
js 0x180006c8d
mov rcx, qword [rbp - 0x80]
jmp 0x180006ae0
mov r14, qword [rbp + 0x10]
mov r15, qword [rbp + 0x18]
mov rdi, qword [rbp + 0x1090]
test r13b, r13b
jne 0x180006d9a
mov r13, qword [rbp - 0x20]
lea rax, [rsp + 0x58]
xor edx, edx
mov qword [rsp + 0x20], rax
lea r9, [0x18038e968]
lea rcx, [0x18038ee10]
lea r8d, [rdx + 0x17]
call r13
test eax, eax
js 0x180006d9e
test r15, r15
je 0x180006d8d
test r14, r14
je 0x180006d8d
mov rcx, qword [rsp + 0x58]
mov rdx, r15
mov rax, qword [rcx]
call qword [rax + 0x60]
mov rcx, qword [rsp + 0x58]
mov rdx, r14
mov rax, qword [rcx]
call qword [rax + 0x40]
mov rcx, qword [rsp + 0x58]
mov rdx, r14
mov rax, qword [rcx]
call qword [rax + 0x50]
mov rcx, qword [rsp + 0x58]
mov edx, 0x100
mov rax, qword [rcx]
call qword [rax + 0x80]
mov rcx, qword [rsp + 0x58]
mov edx, 0xffffffff
mov rax, qword [rcx]
call qword [rax + 0x110]
mov rcx, qword [rsp + 0x58]
mov ebx, 1
mov edx, ebx
mov rax, qword [rcx]
call qword [rax + 0x150]
mov rcx, qword [rdi + 0x10]
lea rdx, [rsp + 0x7c]
mov rax, qword [rcx]
call qword [rax + 0x38]
mov rcx, qword [rsp + 0x58]
mov edx, dword [rsp + 0x7c]
mov rax, qword [rcx]
call qword [rax + 0x130]
mov rcx, qword [rbp - 0x78]
mov rdx, qword [rsp + 0x58]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov ecx, dword [rbp + 0x10a8]
test eax, eax
movzx ecx, cl
cmovns ecx, ebx
mov dword [rbp + 0x10a8], ecx
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x180006d9e
mov r13, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x78]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rdi + 0x18]
test rcx, rcx
je 0x180006e58
mov rax, qword [rcx]
lea rdx, [rbp - 0x70]
call qword [rax + 0xa0]
test eax, eax
js 0x180006e58
xor edx, edx
lea rax, [rsp + 0x70]
lea r9, [0x18038ea60]
mov qword [rsp + 0x20], rax
lea rcx, [0x18038eb30]
lea r8d, [rdx + 0x17]
call r13
test eax, eax
js 0x180006e4e
test r15, r15
je 0x180006e43
test r14, r14
je 0x180006e43
mov rcx, qword [rsp + 0x70]
mov rdx, r15
mov rax, qword [rcx]
call qword [rax + 0x50]
test eax, eax
js 0x180006e43
mov rcx, qword [rsp + 0x70]
mov rdx, r14
mov rax, qword [rcx]
call qword [rax + 0x40]
test eax, eax
js 0x180006e43
mov rcx, qword [rbp - 0x70]
mov rdx, qword [rsp + 0x70]
mov rax, qword [rcx]
call qword [rax + 0x40]
movzx ecx, byte [rbp + 0x10a8]
test eax, eax
mov eax, 1
cmovns ecx, eax
mov byte [rbp + 0x10a8], cl
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x70]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rbx, qword [rbp - 0x18]
test r14, r14
je 0x180006e66
mov rcx, r14
call rbx
test r15, r15
je 0x180006e70
mov rcx, r15
call rbx
movzx eax, byte [rbp + 0x10a8]
jmp 0x180006e7b
xor al, al
mov r13, qword [rsp + 0x1150]
mov r12, qword [rsp + 0x1198]
add rsp, 0x1158
pop r15
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret