Function at 0x2b3685d10
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x170
mov r9d, 0xffffaa8e
mov r10d, 0xffffaa8e
movabs rax, 0xbc989194bb8998ba
movabs rdx, 0x9889889f948f8989
movdqa xmm0, xmmword [0x2b374e4e0]
mov r13, qword [rcx]
mov qword [rsp + 0x150], rax
mov rbx, rcx
xor eax, eax
mov qword [rsp + 0x158], rdx
mov word [rsp + 0x120], r9w
mov word [rsp + 0x160], r10w
mov byte [rsp + 0x122], 0
mov byte [rsp + 0x162], 0
movaps xmmword [rsp + 0x110], xmm0
nop dword [rax]
movzx edx, byte [rsp + rax + 0x150]
xor edx, 0xfffffffd
mov byte [rsp + rax + 0x150], dl
add rax, 1
cmp rax, 0x12
jne 0x2b3685d90
mov rax, qword [0x2b374e4f0]
lea r12, [rsp + 0x150]
lea rcx, [rsp + 0x130]
mov dword [rsp + 0x88], 0x92929ad0
mov rdx, r12
mov byte [rsp + 0x8c], 0
lea r14, [rsp + 0x100]
mov qword [rsp + 0x80], rax
movabs rax, 0xcccd929b908c9b95
mov qword [rsp + 0x130], rax
mov dword [rsp + 0x138], 0x92929ad0
mov byte [rsp + 0x13c], 0
movzx eax, byte [rsp + 0x130]
xor eax, 0xfffffffe
mov byte [rsp + 0x130], al
movzx eax, byte [rsp + 0x131]
xor eax, 0xfffffffe
mov byte [rsp + 0x131], al
movzx eax, byte [rsp + 0x132]
xor eax, 0xfffffffe
mov byte [rsp + 0x132], al
movzx eax, byte [rsp + 0x133]
xor eax, 0xfffffffe
mov byte [rsp + 0x133], al
movzx eax, byte [rsp + 0x134]
xor eax, 0xfffffffe
mov byte [rsp + 0x134], al
movzx eax, byte [rsp + 0x135]
xor eax, 0xfffffffe
mov byte [rsp + 0x135], al
movzx eax, byte [rsp + 0x136]
xor eax, 0xfffffffe
mov byte [rsp + 0x136], al
movzx eax, byte [rsp + 0x137]
xor eax, 0xfffffffe
mov byte [rsp + 0x137], al
movzx eax, byte [rsp + 0x138]
xor eax, 0xfffffffe
mov byte [rsp + 0x138], al
movzx eax, byte [rsp + 0x139]
xor eax, 0xfffffffe
mov byte [rsp + 0x139], al
movzx eax, byte [rsp + 0x13a]
xor eax, 0xfffffffe
mov byte [rsp + 0x13a], al
movzx eax, byte [rsp + 0x13b]
xor eax, 0xfffffffe
mov byte [rsp + 0x13b], al
call fcn.2b3656120
mov rcx, r13
call rax
mov rdi, qword [0x2b374e510]
cmp eax, 0xffffffff
je 0x2b3685f04
test al, 1
jne 0x2b3686618
mov rsi, qword [str.CreateFi]
mov r15, qword [rbx]
mov rdx, r14
mov rcx, r12
mov r13, qword [0x2b374e4a8]
movabs rax, 0x6946657461657243
mov dword [rsp + 0x50], 0x57656c
mov qword [rsp + 0x100], rax
mov dword [rsp + 0x108], 0x57656c
movzx eax, byte [rsp + 0x100]
mov qword [rsp + 0x48], rsi
mov byte [rsp + 0x100], al
movzx eax, byte [rsp + 0x101]
mov qword [rsp + 0xa0], r13
mov byte [rsp + 0x101], al
movzx eax, byte [rsp + 0x102]
mov dword [rsp + 0xa8], 0x67675f29
mov byte [rsp + 0x102], al
movzx eax, byte [rsp + 0x103]
mov byte [rsp + 0xac], 0
mov byte [rsp + 0x103], al
movzx eax, byte [rsp + 0x104]
mov byte [rsp + 0x104], al
movzx eax, byte [rsp + 0x105]
mov byte [rsp + 0x105], al
movzx eax, byte [rsp + 0x106]
mov byte [rsp + 0x106], al
movzx eax, byte [rsp + 0x107]
mov byte [rsp + 0x107], al
movzx eax, byte [rsp + 0x108]
mov byte [rsp + 0x108], al
movzx eax, byte [rsp + 0x109]
mov byte [rsp + 0x109], al
movzx eax, byte [rsp + 0x10a]
mov byte [rsp + 0x10a], al
movabs rax, 0x2d2e6760696d6066
mov qword [rsp + 0x150], rax
mov dword [rsp + 0x158], 0x67675f29
mov byte [rsp + 0x15c], 0
movzx eax, byte [rsp + 0x150]
add eax, 5
mov byte [rsp + 0x150], al
movzx eax, byte [rsp + 0x151]
add eax, 5
mov byte [rsp + 0x151], al
movzx eax, byte [rsp + 0x152]
add eax, 5
mov byte [rsp + 0x152], al
movzx eax, byte [rsp + 0x153]
add eax, 5
mov byte [rsp + 0x153], al
movzx eax, byte [rsp + 0x154]
add eax, 5
mov byte [rsp + 0x154], al
movzx eax, byte [rsp + 0x155]
add eax, 5
mov byte [rsp + 0x155], al
movzx eax, byte [rsp + 0x156]
add eax, 5
mov byte [rsp + 0x156], al
movzx eax, byte [rsp + 0x157]
add eax, 5
mov byte [rsp + 0x157], al
movzx eax, byte [rsp + 0x158]
add eax, 5
mov byte [rsp + 0x158], al
movzx eax, byte [rsp + 0x159]
add eax, 5
mov byte [rsp + 0x159], al
movzx eax, byte [rsp + 0x15a]
add eax, 5
mov byte [rsp + 0x15a], al
movzx eax, byte [rsp + 0x15b]
add eax, 5
mov byte [rsp + 0x15b], al
call fcn.2b3656120
xor r9d, r9d
xor r8d, r8d
mov rcx, r15
mov edx, 0xc0000000
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x20], 3
call rax
mov byte [rsp + 0xbc], 0
mov rdx, r12
mov rcx, r14
mov qword [rbx + 8], rax
mov rax, qword [0x2b374e520]
mov dword [rsp + 0xb8], 0x8f928f8f
mov qword [rsp + 0xb0], rax
movabs rax, 0xb8898e9cb18998ba
mov qword [rsp + 0x150], rax
mov dword [rsp + 0x158], 0x8f928f8f
mov byte [rsp + 0x15c], 0
movzx eax, byte [rsp + 0x150]
xor eax, 0xfffffffd
mov byte [rsp + 0x150], al
movzx eax, byte [rsp + 0x151]
xor eax, 0xfffffffd
mov byte [rsp + 0x151], al
movzx eax, byte [rsp + 0x152]
xor eax, 0xfffffffd
mov byte [rsp + 0x152], al
movzx eax, byte [rsp + 0x153]
xor eax, 0xfffffffd
mov byte [rsp + 0x153], al
movzx eax, byte [rsp + 0x154]
xor eax, 0xfffffffd
mov byte [rsp + 0x154], al
movzx eax, byte [rsp + 0x155]
xor eax, 0xfffffffd
mov byte [rsp + 0x155], al
movzx eax, byte [rsp + 0x156]
xor eax, 0xfffffffd
mov byte [rsp + 0x156], al
movzx eax, byte [rsp + 0x157]
xor eax, 0xfffffffd
mov byte [rsp + 0x157], al
movzx eax, byte [rsp + 0x158]
xor eax, 0xfffffffd
mov byte [rsp + 0x158], al
movzx eax, byte [rsp + 0x159]
xor eax, 0xfffffffd
mov byte [rsp + 0x159], al
movzx eax, byte [rsp + 0x15a]
xor eax, 0xfffffffd
mov byte [rsp + 0x15a], al
movzx eax, byte [rsp + 0x15b]
xor eax, 0xfffffffd
mov byte [rsp + 0x15b], al
mov qword [rsp + 0xc0], rdi
mov qword [rsp + 0x100], rdi
mov dword [rsp + 0x108], 0x95959dd7
mov byte [rsp + 0x10c], 0
movzx eax, byte [rsp + 0x100]
mov dword [rsp + 0xc8], 0x95959dd7
xor eax, 0xfffffff9
mov byte [rsp + 0xcc], 0
mov byte [rsp + 0x100], al
movzx eax, byte [rsp + 0x101]
xor eax, 0xfffffff9
mov byte [rsp + 0x101], al
movzx eax, byte [rsp + 0x102]
xor eax, 0xfffffff9
mov byte [rsp + 0x102], al
movzx eax, byte [rsp + 0x103]
xor eax, 0xfffffff9
mov byte [rsp + 0x103], al
movzx eax, byte [rsp + 0x104]
xor eax, 0xfffffff9
mov byte [rsp + 0x104], al
movzx eax, byte [rsp + 0x105]
xor eax, 0xfffffff9
mov byte [rsp + 0x105], al
movzx eax, byte [rsp + 0x106]
xor eax, 0xfffffff9
mov byte [rsp + 0x106], al
movzx eax, byte [rsp + 0x107]
xor eax, 0xfffffff9
mov byte [rsp + 0x107], al
movzx eax, byte [rsp + 0x108]
xor eax, 0xfffffff9
mov byte [rsp + 0x108], al
movzx eax, byte [rsp + 0x109]
xor eax, 0xfffffff9
mov byte [rsp + 0x109], al
movzx eax, byte [rsp + 0x10a]
xor eax, 0xfffffff9
mov byte [rsp + 0x10a], al
movzx eax, byte [rsp + 0x10b]
xor eax, 0xfffffff9
mov byte [rsp + 0x10b], al
call fcn.2b3656120
call rax
mov r15, qword [rbx + 8]
cmp r15, 0xffffffffffffffff
je 0x2b36869d8
mov rax, qword [0x2b374e528]
mov edx, 0x81
mov dword [rsp + 0x108], 0xbc9c8390
lea rcx, [rsp + 0xf0]
mov qword [rsp + 0x100], rax
mov eax, 0x81
mov word [rsp + 0x10c], ax
movabs rax, 0xaa9c9590bf8d9cbe
mov qword [rsp + 0x150], rax
mov dword [rsp + 0x158], 0xbc9c8390
mov word [rsp + 0x15c], dx
movzx eax, byte [rsp + 0x150]
mov rdx, r12
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
movzx eax, byte [rsp + 0x159]
xor eax, 0xfffffff9
mov byte [rsp + 0x159], al
movzx eax, byte [rsp + 0x15a]
xor eax, 0xfffffff9
mov byte [rsp + 0x15a], al
movzx eax, byte [rsp + 0x15b]
xor eax, 0xfffffff9
mov byte [rsp + 0x15b], al
movzx eax, byte [rsp + 0x15c]
xor eax, 0xfffffff9
mov byte [rsp + 0x15c], al
mov rax, qword [0x2b374e530]
mov dword [rsp + 0xe8], 0x93939bd1
mov qword [rsp + 0xe0], rax
movabs rax, 0xcdcc939a918d9a94
mov qword [rsp + 0xf0], rax
mov dword [rsp + 0xf8], 0x93939bd1
mov byte [rsp + 0xfc], 0
movzx eax, byte [rsp + 0xf0]
mov byte [rsp + 0xec], 0
not eax
mov byte [rsp + 0xf0], al
movzx eax, byte [rsp + 0xf1]
not eax
mov byte [rsp + 0xf1], al
movzx eax, byte [rsp + 0xf2]
not eax
mov byte [rsp + 0xf2], al
movzx eax, byte [rsp + 0xf3]
not eax
mov byte [rsp + 0xf3], al
movzx eax, byte [rsp + 0xf4]
not eax
mov byte [rsp + 0xf4], al
movzx eax, byte [rsp + 0xf5]
not eax
mov byte [rsp + 0xf5], al
movzx eax, byte [rsp + 0xf6]
not eax
mov byte [rsp + 0xf6], al
movzx eax, byte [rsp + 0xf7]
not eax
mov byte [rsp + 0xf7], al
movzx eax, byte [rsp + 0xf8]
not eax
mov byte [rsp + 0xf8], al
movzx eax, byte [rsp + 0xf9]
not eax
mov byte [rsp + 0xf9], al
movzx eax, byte [rsp + 0xfa]
not eax
mov byte [rsp + 0xfa], al
movzx eax, byte [rsp + 0xfb]
not eax
mov byte [rsp + 0xfb], al
call fcn.2b3656120
lea rdx, [rsp + 0x40]
mov rcx, r15
call rax
test eax, eax
je 0x2b36867e8
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x2b36867e8
mov dword [rbx + 0x10], eax
mov eax, 1
add rsp, 0x170
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
xor eax, 1
mov ecx, 0x516d
movabs rdx, 0x5f6e6f5c636c6e6e
mov r8d, 0x516d
mov r13d, eax
movdqa xmm0, xmmword [str.M_n_cf__nnlcon_]
mov r15, qword [rbx]
movabs rax, 0x3b5f6663406e5f4d
mov qword [rsp + 0x150], rax
xor eax, eax
mov qword [rsp + 0x158], rdx
mov word [rsp + 0x140], cx
mov word [rsp + 0x160], r8w
mov byte [rsp + 0x142], 0
mov byte [rsp + 0x162], 0
movaps xmmword [rsp + 0x130], xmm0
nop dword [rax + rax]
movzx edx, byte [rsp + rax + 0x150]
add edx, 6
mov byte [rsp + rax + 0x150], dl
add rax, 1
cmp rax, 0x12
jne 0x2b3686688
movabs rax, 0xcbca959c978b9c92
mov rdi, qword [0x2b374e510]
mov rdx, r12
lea r14, [rsp + 0x100]
mov qword [rsp + 0x100], rax
mov rcx, r14
mov dword [rsp + 0x108], 0x95959dd7
mov byte [rsp + 0x10c], 0
movzx eax, byte [rsp + 0x100]
mov qword [rsp + 0x90], rdi
xor eax, 0xfffffff9
mov byte [rsp + 0x9c], 0
mov byte [rsp + 0x100], al
movzx eax, byte [rsp + 0x101]
mov dword [rsp + 0x98], 0x95959dd7
xor eax, 0xfffffff9
mov byte [rsp + 0x101], al
movzx eax, byte [rsp + 0x102]
xor eax, 0xfffffff9
mov byte [rsp + 0x102], al
movzx eax, byte [rsp + 0x103]
xor eax, 0xfffffff9
mov byte [rsp + 0x103], al
movzx eax, byte [rsp + 0x104]
xor eax, 0xfffffff9
mov byte [rsp + 0x104], al
movzx eax, byte [rsp + 0x105]
xor eax, 0xfffffff9
mov byte [rsp + 0x105], al
movzx eax, byte [rsp + 0x106]
xor eax, 0xfffffff9
mov byte [rsp + 0x106], al
movzx eax, byte [rsp + 0x107]
xor eax, 0xfffffff9
mov byte [rsp + 0x107], al
movzx eax, byte [rsp + 0x108]
xor eax, 0xfffffff9
mov byte [rsp + 0x108], al
movzx eax, byte [rsp + 0x109]
xor eax, 0xfffffff9
mov byte [rsp + 0x109], al
movzx eax, byte [rsp + 0x10a]
xor eax, 0xfffffff9
mov byte [rsp + 0x10a], al
movzx eax, byte [rsp + 0x10b]
xor eax, 0xfffffff9
mov byte [rsp + 0x10b], al
call fcn.2b3656120
mov edx, r13d
mov rcx, r15
call rax
jmp 0x2b3685f04
mov rax, qword [0x2b374e538]
mov r13, qword [rbx + 8]
mov dword [rsp + 0x70], 0x9c959d
mov rcx, r12
mov dword [rsp + 0xf8], 0x6a6a622c
lea rdx, [rsp + 0x74]
mov qword [rsp + 0x68], rax
movabs rax, 0x9798b19c8a9695ba
mov qword [rsp + 0x74], rax
mov dword [rsp + 0x7c], 0x9c959d
movzx eax, byte [rsp + 0x74]
mov byte [rsp + 0xfc], 0
xor eax, 0xfffffff9
mov byte [rsp + 0x74], al
movzx eax, byte [rsp + 0x75]
xor eax, 0xfffffff9
mov byte [rsp + 0x75], al
movzx eax, byte [rsp + 0x76]
xor eax, 0xfffffff9
mov byte [rsp + 0x76], al
movzx eax, byte [rsp + 0x77]
xor eax, 0xfffffff9
mov byte [rsp + 0x77], al
movzx eax, byte [rsp + 0x78]
xor eax, 0xfffffff9
mov byte [rsp + 0x78], al
movzx eax, byte [rsp + 0x79]
xor eax, 0xfffffff9
mov byte [rsp + 0x79], al
movzx eax, byte [rsp + 0x7a]
xor eax, 0xfffffff9
mov byte [rsp + 0x7a], al
movzx eax, byte [rsp + 0x7b]
xor eax, 0xfffffff9
mov byte [rsp + 0x7b], al
movzx eax, byte [rsp + 0x7c]
xor eax, 0xfffffff9
mov byte [rsp + 0x7c], al
movzx eax, byte [rsp + 0x7d]
xor eax, 0xfffffff9
mov byte [rsp + 0x7d], al
movzx eax, byte [rsp + 0x7e]
xor eax, 0xfffffff9
mov byte [rsp + 0x7e], al
mov rax, qword [str.icplcj10Pc_bDgjc_02X]
mov qword [rsp + 0xf0], rax
movabs rax, 0x30316a636c706369
mov qword [rsp + 0x150], rax
mov dword [rsp + 0x158], 0x6a6a622c
mov byte [rsp + 0x15c], 0
movzx eax, byte [rsp + 0x150]
add eax, 2
mov byte [rsp + 0x150], al
movzx eax, byte [rsp + 0x151]
add eax, 2
mov byte [rsp + 0x151], al
movzx eax, byte [rsp + 0x152]
add eax, 2
mov byte [rsp + 0x152], al
movzx eax, byte [rsp + 0x153]
add eax, 2
mov byte [rsp + 0x153], al
movzx eax, byte [rsp + 0x154]
add eax, 2
mov byte [rsp + 0x154], al
movzx eax, byte [rsp + 0x155]
add eax, 2
mov byte [rsp + 0x155], al
movzx eax, byte [rsp + 0x156]
add eax, 2
mov byte [rsp + 0x156], al
movzx eax, byte [rsp + 0x157]
add eax, 2
mov byte [rsp + 0x157], al
movzx eax, byte [rsp + 0x158]
add eax, 2
mov byte [rsp + 0x158], al
movzx eax, byte [rsp + 0x159]
add eax, 2
mov byte [rsp + 0x159], al
movzx eax, byte [rsp + 0x15a]
add eax, 2
mov byte [rsp + 0x15a], al
movzx eax, byte [rsp + 0x15b]
add eax, 2
mov byte [rsp + 0x15b], al
call fcn.2b3656120
mov rcx, r13
call rax
xor eax, eax
jmp 0x2b3686602
sub eax, 0x20
cmp eax, 1
ja 0x2b36869cc
mov r15, qword [rbx]
mov qword [rsp + 0x58], rsi
mov rdx, r14
mov rcx, r12
mov qword [rsp + 0x100], rsi
mov dword [rsp + 0x108], 0x57656c
movzx eax, byte [rsp + 0x100]
mov dword [rsp + 0x60], 0x57656c
mov byte [rsp + 0x100], al
movzx eax, byte [rsp + 0x101]
mov qword [rsp + 0xd0], r13
mov byte [rsp + 0x101], al
movzx eax, byte [rsp + 0x102]
mov dword [rsp + 0xd8], 0x67675f29
mov byte [rsp + 0x102], al
movzx eax, byte [rsp + 0x103]
mov byte [rsp + 0xdc], 0
mov byte [rsp + 0x103], al
movzx eax, byte [rsp + 0x104]
mov byte [rsp + 0x104], al
movzx eax, byte [rsp + 0x105]
mov byte [rsp + 0x105], al
movzx eax, byte [rsp + 0x106]
mov byte [rsp + 0x106], al
movzx eax, byte [rsp + 0x107]
mov byte [rsp + 0x107], al
movzx eax, byte [rsp + 0x108]
mov byte [rsp + 0x108], al
movzx eax, byte [rsp + 0x109]
mov byte [rsp + 0x109], al
movzx eax, byte [rsp + 0x10a]
mov byte [rsp + 0x10a], al
mov qword [rsp + 0x150], r13
mov dword [rsp + 0x158], 0x67675f29
mov byte [rsp + 0x15c], 0
movzx eax, byte [rsp + 0x150]
add eax, 5
mov byte [rsp + 0x150], al
movzx eax, byte [rsp + 0x151]
add eax, 5
mov byte [rsp + 0x151], al
movzx eax, byte [rsp + 0x152]
add eax, 5
mov byte [rsp + 0x152], al
movzx eax, byte [rsp + 0x153]
add eax, 5
mov byte [rsp + 0x153], al
movzx eax, byte [rsp + 0x154]
add eax, 5
mov byte [rsp + 0x154], al
movzx eax, byte [rsp + 0x155]
add eax, 5
mov byte [rsp + 0x155], al
movzx eax, byte [rsp + 0x156]
add eax, 5
mov byte [rsp + 0x156], al
movzx eax, byte [rsp + 0x157]
add eax, 5
mov byte [rsp + 0x157], al
movzx eax, byte [rsp + 0x158]
add eax, 5
mov byte [rsp + 0x158], al
movzx eax, byte [rsp + 0x159]
add eax, 5
mov byte [rsp + 0x159], al
movzx eax, byte [rsp + 0x15a]
add eax, 5
mov byte [rsp + 0x15a], al
movzx eax, byte [rsp + 0x15b]
add eax, 5
mov byte [rsp + 0x15b], al
call fcn.2b3656120
mov rcx, r15
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x30], 0
mov edx, 0xc0000000
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
call rax
mov qword [rbx + 8], rax
mov r15, rax
cmp rax, 0xffffffffffffffff
jne 0x2b368637c
xor eax, eax
jmp 0x2b3686602