Function at 0x2b3665420
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rbx
sub rsp, 0x208
movdqa xmm0, xmmword [0x2b3757350]
mov esi, 0xffff8a50
movabs rax, 0x4451435151524388
mov r14d, 0xffff8a50
mov r12, rdx
mov r13, rcx
movabs rdx, 0x413a443d3d503a41
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xd8], rdx
movabs rax, 0x4e43444f3a424452
movabs rdx, 0x46463d414442523a
mov qword [rsp + 0xe0], rax
xor eax, eax
mov qword [rsp + 0xe8], rdx
movaps xmmword [rsp + 0x100], xmm0
movdqa xmm0, xmmword [0x2b3757360]
mov dword [rsp + 0xf0], 0x413f5242
mov qword [rsp + 0x38], 0
mov word [rsp + 0xf4], r14w
mov dword [rsp + 0x120], 0x413f5242
mov word [rsp + 0x124], si
mov byte [rsp + 0x126], 0
mov byte [rsp + 0xf6], 0
movaps xmmword [rsp + 0x110], xmm0
nop dword [rax]
movzx edx, byte [rsp + rax + 0xd0]
sub edx, 0xd
mov byte [rsp + rax + 0xd0], dl
add rax, 1
cmp rax, 0x26
jne 0x2b36654f0
lea r15, [rsp + 0xd0]
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, 0x15
mov rcx, rax
mov r14, rax
lea r15, [rsp + 0x1b4]
call sub.msvcrt.dll_mbstowcs
mov rax, qword [0x2b3757370]
mov dword [rsp + 0x1b0], 0x72
mov r11d, 0x15
mov word [rsp + 0x9c], r11w
mov qword [rsp + 0x90], rax
movabs rax, 0x211f1d0034363b3b
mov qword [rsp + 0x1b4], rax
mov dword [rsp + 0x1bc], 0x1c1b0006
mov word [rsp + 0x1c0], bx
movzx eax, byte [rsp + 0x1b4]
mov edx, dword [rsp + 0x1b0]
mov dword [rsp + 0x98], 0x1c1b0006
xor eax, edx
mov byte [rsp + 0x1b4], al
movzx eax, byte [rsp + 0x1b5]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1b5], al
movzx eax, byte [rsp + 0x1b6]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1b6], al
movzx eax, byte [rsp + 0x1b7]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1b7], al
movzx eax, byte [rsp + 0x1b8]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1b8], al
movzx eax, byte [rsp + 0x1b9]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1b9], al
movzx eax, byte [rsp + 0x1ba]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1ba], al
movzx eax, byte [rsp + 0x1bb]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1bb], al
movzx eax, byte [rsp + 0x1bc]
mov edx, dword [rsp + 0x1b0]
mov byte [rsp + 0x49], 0
movq xmm0, qword [0x2b3757378]
xor eax, edx
mov byte [rsp + 0x1bc], al
movzx eax, byte [rsp + 0x1bd]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1bd], al
movzx eax, byte [rsp + 0x1be]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1be], al
movzx eax, byte [rsp + 0x1bf]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1bf], al
movzx eax, byte [rsp + 0x1c0]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1c0], al
mov byte [rsp + 0x1c1], 0
mov dword [rsp + 0x160], 0x65
mov r11d, dword [rsp + 0x160]
mov r8d, dword [rsp + 0x160]
mov r9d, dword [rsp + 0x160]
mov r10d, dword [rsp + 0x160]
mov ebx, dword [rsp + 0x160]
mov esi, dword [rsp + 0x160]
add r9d, 2
add r8d, 1
mov ecx, dword [rsp + 0x160]
add ebx, 4
add r10d, 3
movzx r9d, r9b
movzx r8d, r8b
mov eax, dword [rsp + 0x160]
add ecx, 6
add esi, 5
movzx r10d, r10b
movzx ecx, cl
mov edx, dword [rsp + 0x160]
add eax, 7
movzx eax, al
shl rax, 8
or rax, rcx
movzx ecx, sil
lea rsi, [rsp + 0x164]
shl rax, 8
or rax, rcx
movzx ecx, bl
lea rbx, [rsp + 0xa0]
shl rax, 8
or rax, rcx
movzx ecx, r11b
shl rax, 8
or rax, r10
shl rax, 8
or rax, r9
shl rax, 8
or rax, r8
shl rax, 8
or rax, rcx
mov rcx, rsi
movq xmm1, rax
lea eax, [rdx + 8]
xor eax, 0x6c
pxor xmm1, xmm0
mov byte [rsp + 0x48], al
movzx eax, word [rsp + 0x48]
movq qword [rsp + 0x40], xmm1
movq qword [rsp + 0x164], xmm1
mov word [rsp + 0x16c], ax
movzx eax, byte [rsp + 0x164]
mov edx, dword [rsp + 0x160]
xor eax, edx
mov byte [rsp + 0x164], al
movzx edx, byte [rsp + 0x165]
mov eax, dword [rsp + 0x160]
add eax, 1
xor eax, edx
mov byte [rsp + 0x165], al
movzx edx, byte [rsp + 0x166]
mov eax, dword [rsp + 0x160]
add eax, 2
xor eax, edx
mov byte [rsp + 0x166], al
movzx edx, byte [rsp + 0x167]
mov eax, dword [rsp + 0x160]
add eax, 3
xor eax, edx
mov byte [rsp + 0x167], al
movzx edx, byte [rsp + 0x168]
mov eax, dword [rsp + 0x160]
add eax, 4
xor eax, edx
mov byte [rsp + 0x168], al
movzx edx, byte [rsp + 0x169]
mov eax, dword [rsp + 0x160]
add eax, 5
xor eax, edx
mov byte [rsp + 0x169], al
movzx edx, byte [rsp + 0x16a]
mov eax, dword [rsp + 0x160]
add eax, 6
xor eax, edx
mov byte [rsp + 0x16a], al
movzx edx, byte [rsp + 0x16b]
mov eax, dword [rsp + 0x160]
add eax, 7
xor eax, edx
mov byte [rsp + 0x16b], al
movzx edx, byte [rsp + 0x16c]
mov eax, dword [rsp + 0x160]
add eax, 8
xor eax, edx
mov rdx, r15
mov byte [rsp + 0x16c], al
mov byte [rsp + 0x16d], 0
call fcn.2b3657510
mov rcx, r14
mov rdx, rbx
mov r14d, 0x80004005
call rax
test eax, eax
je 0x2b366591d
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x2b3665908
mov rax, qword [rcx]
call qword [rax + 0x10]
mov eax, r14d
add rsp, 0x208
pop rbx
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [0x2b3757380]
xor r8d, r8d
xor ecx, ecx
mov dword [rsp + 0x1b0], 0x23
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x80], rax
movabs rax, 0x424a574a4d6a4c60
mov qword [rsp + 0x1b4], rax
mov dword [rsp + 0x1bc], 0x46594a4f
mov byte [rsp + 0x1c0], 0
movzx eax, byte [rsp + 0x1b4]
mov edx, dword [rsp + 0x1b0]
mov qword [rsp + 0x140], 0
mov qword [rsp + 0x138], 0
xor eax, edx
mov qword [rsp + 0x148], 0
mov byte [rsp + 0x1b4], al
movzx eax, byte [rsp + 0x1b5]
mov edx, dword [rsp + 0x1b0]
mov qword [rsp + 0x150], 0
mov qword [rsp + 0x158], 0
xor eax, edx
mov byte [rsp + 0x8c], 0
mov byte [rsp + 0x1b5], al
movzx eax, byte [rsp + 0x1b6]
mov edx, dword [rsp + 0x1b0]
mov dword [rsp + 0x130], 0x30
mov dword [rsp + 0x144], 4
mov dword [rsp + 0x88], 0x46594a4f
xor eax, edx
mov byte [rsp + 0x1b6], al
movzx eax, byte [rsp + 0x1b7]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1b7], al
movzx eax, byte [rsp + 0x1b8]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1b8], al
movzx eax, byte [rsp + 0x1b9]
mov edx, dword [rsp + 0x1b0]
mov word [rsp + 0x58], cx
mov rcx, rsi
xor eax, edx
mov byte [rsp + 0x1b9], al
movzx eax, byte [rsp + 0x1ba]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1ba], al
movzx eax, byte [rsp + 0x1bb]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1bb], al
movzx eax, byte [rsp + 0x1bc]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1bc], al
movzx eax, byte [rsp + 0x1bd]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1bd], al
movzx eax, byte [rsp + 0x1be]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1be], al
movzx eax, byte [rsp + 0x1bf]
mov edx, dword [rsp + 0x1b0]
xor eax, edx
mov byte [rsp + 0x1bf], al
mov rax, qword [0x2b3757388]
mov byte [rsp + 0x1c0], 0
mov qword [rsp + 0x50], rax
movabs rax, 0x8425e5f090003
mov dword [rsp + 0x160], 0x6c
mov qword [rsp + 0x164], rax
mov word [rsp + 0x16c], r8w
movzx eax, byte [rsp + 0x164]
mov edx, dword [rsp + 0x160]
xor eax, edx
mov byte [rsp + 0x164], al
movzx eax, byte [rsp + 0x165]
mov edx, dword [rsp + 0x160]
xor eax, edx
mov byte [rsp + 0x165], al
movzx eax, byte [rsp + 0x166]
mov edx, dword [rsp + 0x160]
xor eax, edx
mov byte [rsp + 0x166], al
movzx eax, byte [rsp + 0x167]
mov edx, dword [rsp + 0x160]
xor eax, edx
mov byte [rsp + 0x167], al
movzx eax, byte [rsp + 0x168]
mov edx, dword [rsp + 0x160]
xor eax, edx
mov byte [rsp + 0x168], al
movzx eax, byte [rsp + 0x169]
mov edx, dword [rsp + 0x160]
xor eax, edx
mov byte [rsp + 0x169], al
movzx eax, byte [rsp + 0x16a]
mov edx, dword [rsp + 0x160]
xor eax, edx
mov byte [rsp + 0x16a], al
movzx eax, byte [rsp + 0x16b]
mov edx, dword [rsp + 0x160]
xor eax, edx
mov byte [rsp + 0x16b], al
movzx eax, byte [rsp + 0x16c]
mov edx, dword [rsp + 0x160]
xor eax, edx
mov rdx, r15
mov byte [rsp + 0x16c], al
mov byte [rsp + 0x16d], 0
call fcn.2b3657510
xor ecx, ecx
call rax
movdqa xmm0, xmmword [0x2b3757390]
mov r9d, 0xc46
movabs rax, 0x1e18051007141d34
movabs rdx, 0x181f181c15304b1f
mov r10d, 0xc46
mov dword [rsp + 0x1b0], 0x71
movaps xmmword [rsp + 0x160], xmm0
movdqa xmm0, xmmword [0x2b37573a0]
mov qword [rsp + 0x1b4], rax
movabs rax, 0x50031e0510030502
mov qword [rsp + 0x1bc], rdx
movabs rdx, 0x4434420a4b06141f
mov qword [rsp + 0x1c4], rax
movabs rax, 0x30485c4837463237
mov qword [rsp + 0x1cc], rdx
movabs rdx, 0x5c464742455c4044
movaps xmmword [rsp + 0x170], xmm0
movdqa xmm0, xmmword [0x2b37573b0]
mov qword [rsp + 0x1d4], rax
movabs rax, 0x4340305c42474148
mov qword [rsp + 0x1dc], rdx
movabs rdx, 0x3234333745454341
mov qword [rsp + 0x1e4], rax
xor eax, eax
mov qword [rsp + 0x1ec], rdx
movaps xmmword [rsp + 0x180], xmm0
movdqa xmm0, xmmword [0x2b37573c0]
mov word [rsp + 0x1f4], r10w
mov byte [rsp + 0x1a2], 0
mov word [rsp + 0x1a0], r9w
mov byte [rsp + 0x1f6], 0
movaps xmmword [rsp + 0x190], xmm0
nop dword [rax + rax]
movzx edx, byte [rsp + rax + 0x1b4]
mov ecx, dword [rsp + 0x1b0]
xor edx, ecx
mov byte [rsp + rax + 0x1b4], dl
add rax, 1
cmp rax, 0x42
jne 0x2b3665d30
mov rcx, r15
mov byte [rsp + 0x1f6], 0
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 rax, qword [0x2b37573d0]
mov dword [rsp + 0xc0], 0x5c
lea rcx, [rsp + 0xb4]
mov dword [rsp + 0x78], 0x283f39
mov qword [rsp + 0x70], rax
movabs rax, 0x363e1328391b331f
mov qword [rsp + 0xc4], rax
mov dword [rsp + 0xcc], 0x283f39
movzx eax, byte [rsp + 0xc4]
mov edx, dword [rsp + 0xc0]
xor eax, edx
mov byte [rsp + 0xc4], al
movzx eax, byte [rsp + 0xc5]
mov edx, dword [rsp + 0xc0]
xor eax, edx
mov byte [rsp + 0xc5], al
movzx eax, byte [rsp + 0xc6]
mov edx, dword [rsp + 0xc0]
xor eax, edx
mov byte [rsp + 0xc6], al
movzx eax, byte [rsp + 0xc7]
mov edx, dword [rsp + 0xc0]
xor eax, edx
mov byte [rsp + 0xc7], al
movzx eax, byte [rsp + 0xc8]
mov edx, dword [rsp + 0xc0]
xor eax, edx
mov byte [rsp + 0xc8], al
movzx eax, byte [rsp + 0xc9]
mov edx, dword [rsp + 0xc0]
xor eax, edx
mov byte [rsp + 0xc9], al
movzx eax, byte [rsp + 0xca]
mov edx, dword [rsp + 0xc0]
xor eax, edx
mov byte [rsp + 0xca], al
movzx eax, byte [rsp + 0xcb]
mov edx, dword [rsp + 0xc0]
xor eax, edx
mov byte [rsp + 0xcb], al
movzx eax, byte [rsp + 0xcc]
mov edx, dword [rsp + 0xc0]
xor eax, edx
mov byte [rsp + 0xcc], al
movzx eax, byte [rsp + 0xcd]
mov edx, dword [rsp + 0xc0]
xor eax, edx
mov byte [rsp + 0xcd], al
movzx eax, byte [rsp + 0xce]
mov edx, dword [rsp + 0xc0]
xor eax, edx
mov edx, 0x14
mov byte [rsp + 0xce], al
mov rax, qword [0x2b37573d8]
mov byte [rsp + 0xcf], 0
mov qword [rsp + 0x60], rax
mov eax, 0x14
mov word [rsp + 0x68], ax
movabs rax, 0x141c564a4b1d1417
mov dword [rsp + 0xb0], 0x78
mov qword [rsp + 0xb4], rax
mov word [rsp + 0xbc], dx
movzx eax, byte [rsp + 0xb4]
mov edx, dword [rsp + 0xb0]
xor eax, edx
mov byte [rsp + 0xb4], al
movzx eax, byte [rsp + 0xb5]
mov edx, dword [rsp + 0xb0]
xor eax, edx
mov byte [rsp + 0xb5], al
movzx eax, byte [rsp + 0xb6]
mov edx, dword [rsp + 0xb0]
xor eax, edx
mov byte [rsp + 0xb6], al
movzx eax, byte [rsp + 0xb7]
mov edx, dword [rsp + 0xb0]
xor eax, edx
mov byte [rsp + 0xb7], al
movzx eax, byte [rsp + 0xb8]
mov edx, dword [rsp + 0xb0]
xor eax, edx
mov byte [rsp + 0xb8], al
movzx eax, byte [rsp + 0xb9]
mov edx, dword [rsp + 0xb0]
xor eax, edx
mov byte [rsp + 0xb9], al
movzx eax, byte [rsp + 0xba]
mov edx, dword [rsp + 0xb0]
xor eax, edx
mov byte [rsp + 0xba], al
movzx eax, byte [rsp + 0xbb]
mov edx, dword [rsp + 0xb0]
xor eax, edx
mov byte [rsp + 0xbb], al
movzx eax, byte [rsp + 0xbc]
mov edx, dword [rsp + 0xb0]
xor eax, edx
lea rdx, [rsp + 0xc4]
mov byte [rsp + 0xbc], al
mov byte [rsp + 0xbd], 0
call fcn.2b3657510
mov rcx, r14
lea r9, [rsp + 0x38]
mov r8, rbx
lea rdx, [rsp + 0x130]
call rax
mov r14d, eax
test eax, eax
jne 0x2b36658f8
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 0x2b366607e
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 0x2b36658f8