Function at 0x180015d80
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x380]
sub rsp, 0x480
mov rax, qword [0x180120cc0]
xor rax, rsp
mov qword [rbp + 0x370], rax
mov r13, rdx
mov qword [rbp + 0x48], rdx
mov dword [rsp + 0x28], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0xe0], xmm0
mov qword [rbp + 0xf0], 0
mov qword [rbp + 0xf8], 0xf
mov byte [rbp + 0xe0], 0
movups xmmword [rbp + 0x100], xmm0
movdqa xmm1, xmmword [0x1800aa1a0]
movdqa xmmword [rbp + 0x110], xmm1
mov byte [rbp + 0x100], 0
mov qword [rbp + 0x120], 0
mov rdi, qword [0x180121e08]
cmp qword [rdi + 0x300], 0
jne 0x180015e78
mov rdx, qword [rdi + 0x2d8]
lea rcx, [rbp + 0xe0]
call fcn.180011ac0
mov rcx, qword [0x180121e08]
add rcx, 0x2f0
lea rax, [rbp + 0xe0]
cmp rcx, rax
je 0x180015e78
lea rdx, [rbp + 0xe0]
cmp qword [rbp + 0xf8], 0xf
cmova rdx, qword [rbp + 0xe0]
mov r8, qword [rbp + 0xf0]
call fcn.18001a300
cmp qword [rbp + 0xf0], 0
jne 0x180016014
xor sil, sil
mov rdi, qword [0x180121e08]
mov rbx, qword [rdi + 0x2d8]
mov r14, qword [rdi + 0x2e0]
cmp rbx, r14
je 0x180015f4e
mov r12, qword [rdi + 0x300]
mov r15, qword [rdi + 0x308]
nop word [rax + rax]
lea rdx, [rdi + 0x2f0]
cmp r15, 0xf
jbe 0x180015ed4
mov rdx, qword [rdi + 0x2f0]
mov r8, qword [rbx + 0x10]
mov rcx, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x180015ee5
mov rcx, qword [rbx]
cmp r8, r12
jne 0x180015ef8
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x180015ef8
mov sil, 1
jmp 0x180015efd
test sil, sil
jne 0x180015f08
add rbx, 0x48
cmp rbx, r14
jne 0x180015ec0
jmp 0x180015f4e
mov rdx, rbx
lea rcx, [rbp + 0xe0]
call fcn.180011ac0
mov rcx, qword [0x180121e08]
add rcx, 0x2f0
cmp rcx, rbx
je 0x180015f40
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 0xf
jbe 0x180015f38
mov rbx, qword [rbx]
mov rdx, rbx
call fcn.18001a300
cmp qword [rbp + 0xf0], 0
jne 0x180016014
mov rax, qword [0x180121e08]
mov rbx, qword [rax + 0x2d8]
lea rax, [rbp + 0xe0]
cmp rax, rbx
je 0x180015f85
mov rdx, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x180015f75
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
lea rcx, [rbp + 0xe0]
call fcn.18001a300
lea rdx, [rbx + 0x20]
lea rax, [rbp + 0x100]
cmp rax, rdx
je 0x180015faf
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0xf
jbe 0x180015fa3
mov rdx, qword [rdx]
lea rcx, [rbp + 0x100]
call fcn.18001a300
mov rcx, qword [rbp + 0x120]
test rcx, rcx
je 0x180015fc1
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbx + 0x40]
mov qword [rbp + 0x120], rcx
test rcx, rcx
je 0x180015fd7
mov rax, qword [rcx]
call qword [rax + 8]
mov rcx, qword [0x180121e08]
add rcx, 0x2f0
lea rax, [rbp + 0xe0]
cmp rcx, rax
je 0x180016014
lea rdx, [rbp + 0xe0]
cmp qword [rbp + 0xf8], 0xf
cmova rdx, qword [rbp + 0xe0]
mov r8, qword [rbp + 0xf0]
call fcn.18001a300
lea rdx, [rbp + 0x100]
lea rcx, [rbp + 0x80]
call fcn.180009300
nop
lea rax, [rbp + 0x80]
cmp qword [rbp + 0x98], 0xf
cmova rax, qword [rbp + 0x80]
mov qword [rbp + 0x50], rax
mov rax, qword [rbp + 0x90]
mov qword [rbp + 0x58], rax
xor r8d, r8d
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0x60]
call fcn.18000cd00
mov r14d, 1
lea rcx, [rbp + 0x60]
cmp qword [rbp + 0x78], 7
cmova rcx, qword [rbp + 0x60]
mov r9d, 0xffffffff
lea r8d, [r14 + 2]
lea rdx, [rbp + 0xc0]
call fcn.1800a2010
mov edx, eax
lea edi, [r14 + 3]
mov esi, 0x1ff
mov r15d, 0x16d
test eax, eax
jne 0x1800160e2
mov ecx, dword [rbp + 0xd0]
test r14b, cl
mov eax, esi
cmovne eax, r15d
mov dword [rbp + 0x54], eax
bt ecx, 0xa
jae 0x1800160d4
mov eax, dword [rbp + 0xd4]
cmp eax, 0xa000000c
jne 0x1800160c6
mov eax, edi
jmp 0x180016106
cmp eax, 0xa0000003
jne 0x1800160d4
mov eax, 0xa
jmp 0x180016106
movzx eax, cl
and eax, 0x10
or eax, 0x20
shr eax, 4
jmp 0x180016106
mov dword [rbp + 0x54], 0xffff
sub eax, 2
je 0x180016101
sub eax, 1
je 0x180016101
sub eax, 0x32
je 0x180016101
cmp eax, 0x46
je 0x180016101
xor eax, eax
jmp 0x180016106
mov eax, 1
mov dword [rbp + 0x50], edx
lea r12, [0x1800cd240]
mov qword [rbp + 0x58], r12
movaps xmm0, xmmword [rbp + 0x50]
movdqa xmmword [rbp + 0x50], xmm0
test eax, eax
je 0x180016234
cmp eax, 1
sete bl
lea rcx, [rbp + 0x60]
call fcn.18001a090
test bl, bl
je 0x18001619f
lea rax, [rbp + 0x80]
cmp qword [rbp + 0x98], 0xf
cmova rax, qword [rbp + 0x80]
mov qword [rbp + 0x50], rax
mov rax, qword [rbp + 0x90]
mov qword [rbp + 0x58], rax
xor r8d, r8d
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0x60]
call fcn.18000cd00
mov r14d, 9
lea rcx, [rbp + 0x60]
cmp qword [rbp + 0x78], 7
cmova rcx, qword [rbp + 0x60]
call fcn.1800a1ee4
mov rdx, rax
shr rax, 0x20
test eax, eax
jne 0x18001708e
lea rcx, [rbp + 0x60]
call fcn.18001a090
lea rax, [rbp + 0x80]
cmp qword [rbp + 0x98], 0xf
cmova rax, qword [rbp + 0x80]
mov qword [rbp + 0x50], rax
mov rax, qword [rbp + 0x90]
mov qword [rbp + 0x58], rax
xor r8d, r8d
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0x60]
call fcn.18000cd00
or r14d, 2
mov dword [rsp + 0x38], r14d
lea rcx, [rbp + 0x60]
cmp qword [rbp + 0x78], 7
cmova rcx, qword [rbp + 0x60]
mov r9d, 0xffffffff
mov r8d, 3
lea rdx, [rbp + 0xc0]
call fcn.1800a2010
mov r8d, eax
test eax, eax
jne 0x18001625f
mov edx, dword [rbp + 0xd0]
test dl, 1
mov ecx, esi
cmovne ecx, r15d
mov dword [rbp + 0x54], ecx
bt edx, 0xa
jae 0x180016251
mov eax, dword [rbp + 0xd4]
cmp eax, 0xa000000c
jne 0x180016243
mov eax, edi
jmp 0x180016283
mov bl, 1
test edx, edx
jne 0x180017040
jmp 0x18001612b
cmp eax, 0xa0000003
jne 0x180016251
mov eax, 0xa
jmp 0x180016283
movzx eax, dl
and eax, 0x10
or eax, 0x20
shr eax, 4
jmp 0x180016283
mov dword [rbp + 0x54], 0xffff
sub eax, 2
je 0x18001627e
sub eax, 1
je 0x18001627e
sub eax, 0x32
je 0x18001627e
cmp eax, 0x46
je 0x18001627e
xor eax, eax
jmp 0x180016283
mov eax, 1
mov dword [rbp + 0x50], r8d
mov qword [rbp + 0x58], r12
movaps xmm0, xmmword [rbp + 0x50]
movdqa xmmword [rbp + 0x50], xmm0
test eax, eax
je 0x1800163c8
cmp eax, 1
setne bl
lea rcx, [rbp + 0x60]
call fcn.18001a090
mov rsi, 0xffffffffffffffff
test bl, bl
je 0x180016d42
movdqa xmm0, xmmword [0x1800aa1b0]
movdqu xmmword [rbp + 0xa0], xmm0
mov byte [rbp + 0xb0], 1
xor r8d, r8d
mov ecx, r8d
nop word [rax + rax]
lea eax, [rcx + 0x6a]
xor byte [rbp + rcx + 0xa0], al
inc rcx
cmp rcx, 0xf
jb 0x1800162e0
mov byte [rbp + 0xb0], r8b
mov rdx, qword [rbp + 0x90]
mov qword [rsp + 0x28], rdx
lea rax, [rbp + 0xa0]
mov rbx, rsi
inc rbx
cmp byte [rax + rbx], r8b
jne 0x180016310
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, rdx
cmp rax, rbx
jb 0x1800170a3
lea rax, [rbp + 0x80]
cmp qword [rbp + 0x98], 0xf
cmova rax, qword [rbp + 0x80]
mov qword [rbp + 0x50], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0xc0], xmm0
mov qword [rbp + 0xd0], r8
mov qword [rbp + 0xd8], r8
lea r12, [rbx + rdx]
mov r14d, 0xf
lea r15, [rbp + 0xc0]
movabs r9, 0x8000000000000000
lea r10d, [r14 + 7]
cmp r12, r14
jbe 0x18001641d
mov r14, r12
or r14, 0xf
cmp r14, rcx
jbe 0x1800163d8
mov r14, rcx
lea rax, [r9 + 0x27]
mov rcx, rax
call fcn.1800a28cc
test rax, rax
je 0x180016d34
lea r15, [rax + 0x27]
and r15, 0xffffffffffffffe0
mov qword [r15 - 8], rax
mov rdx, qword [rsp + 0x28]
mov rax, qword [rbp + 0x50]
jmp 0x180016416
xor bl, bl
test r8d, r8d
jne 0x180017055
jmp 0x1800162a2
cmp r14, r10
cmovb r14, r10
lea rcx, [r14 + 1]
cmp rcx, 0x1000
jb 0x1800163fb
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18001706a
jmp 0x1800163a0
test rcx, rcx
je 0x180016413
call fcn.1800a28cc
mov r15, rax
mov rdx, qword [rsp + 0x28]
mov rax, qword [rbp + 0x50]
jmp 0x180016416
mov r15, r8
mov qword [rbp + 0xc0], r15
mov qword [rbp + 0xd0], r12
mov qword [rbp + 0xd8], r14
mov r8, rdx
mov rdx, rax
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rsp + 0x28]
add rcx, r15
mov r8, rbx
lea rdx, [rbp + 0xa0]
call sub.VCRUNTIME140.dll_memcpy
mov byte [r15 + r12], 0
mov r14d, dword [rsp + 0x38]
or r14d, 0x10
lea rax, [rbp + 0xc0]
cmp qword [rbp + 0xd8], 0xf
cmova rax, qword [rbp + 0xc0]
mov qword [rbp + 0x50], rax
mov rax, qword [rbp + 0xd0]
mov qword [rbp + 0x58], rax
xor r8d, r8d
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0xa0]
call fcn.18000cd00
or r14d, 0x20
mov dword [rsp + 0x38], r14d
lea rcx, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 7
cmova rcx, qword [rbp + 0xa0]
mov r9d, 0xffffffff
mov r8d, 3
lea rdx, [rbp + 0x350]
call fcn.1800a2010
mov r8d, eax
test eax, eax
jne 0x18001651d
mov edx, dword [rbp + 0x360]
test dl, 1
mov eax, 0x1ff
mov ecx, 0x16d
cmovne eax, ecx
mov dword [rbp + 0x54], eax
bt edx, 0xa
jae 0x18001650f
mov eax, dword [rbp + 0x364]
cmp eax, 0xa000000c
je 0x180016541
cmp eax, 0xa0000003
jne 0x18001650f
lea edi, [r8 + 0xa]
jmp 0x180016541
movzx edi, dl
and edi, 0x10
or edi, 0x20
shr edi, 4
jmp 0x180016541
mov dword [rbp + 0x54], 0xffff
sub eax, 2
je 0x18001653c
sub eax, 1
je 0x18001653c
sub eax, 0x32
je 0x18001653c
cmp eax, 0x46
je 0x18001653c
xor edi, edi
jmp 0x180016541
mov edi, 1
mov dword [rbp + 0x50], r8d
lea rax, [0x1800cd240]
mov qword [rbp + 0x58], rax
movaps xmm0, xmmword [rbp + 0x50]
movdqa xmmword [rbp + 0x50], xmm0
test edi, edi
je 0x18001691b
cmp edi, 1
sete bl
lea rcx, [rbp + 0xa0]
call fcn.18001a090
lea r15, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
lea r12, vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
test bl, bl
je 0x180016932
movdqa xmm0, xmmword [0x1800aa220]
movdqa xmmword [rsp + 0x40], xmm0
movdqa xmm1, xmmword [0x1800aa280]
movdqa xmmword [rsp + 0x50], xmm1
movdqa xmm0, xmmword [0x1800aa2e0]
movdqa xmmword [rsp + 0x60], xmm0
movdqa xmm1, xmmword [0x1800aa2b0]
movdqa xmmword [rsp + 0x70], xmm1
movdqa xmm0, xmmword [0x1800aa2d0]
movdqa xmmword [rbp - 0x80], xmm0
movdqa xmm1, xmmword [0x1800aa290]
movdqa xmmword [rbp - 0x70], xmm1
movdqa xmm0, xmmword [0x1800aa2a0]
movdqa xmmword [rbp - 0x60], xmm0
movdqa xmm1, xmmword [0x1800aa2c0]
movdqa xmmword [rbp - 0x50], xmm1
movdqa xmm0, xmmword [0x1800aa270]
movdqa xmmword [rbp - 0x40], xmm0
movdqa xmm1, xmmword [0x1800aa230]
movdqa xmmword [rbp - 0x30], xmm1
movdqa xmm0, xmmword [0x1800aa240]
movdqa xmmword [rbp - 0x20], xmm0
movdqa xmm1, xmmword [0x1800aa210]
movdqa xmmword [rbp - 0x10], xmm1
movdqa xmm0, xmmword [str._MTrXJBB_Z]
movdqa xmmword [rbp], xmm0
movdqa xmm1, xmmword [0x1800aa260]
movdqa xmmword [rbp + 0x10], xmm1
movdqa xmm0, xmmword [0x1800aa250]
movdqa xmmword [rbp + 0x20], xmm0
mov dword [rbp + 0x30], 0x2f3f287d
mov dword [rbp + 0x34], 0x4f142f37
mov dword [rbp + 0x38], 0x4205160e
mov word [rbp + 0x3c], 0x100
xor edi, edi
mov ecx, edi
nop
lea eax, [rcx + 0x6a]
xor byte [rsp + rcx + 0x40], al
inc rcx
cmp rcx, 0xfc
jb 0x180016670
mov byte [rbp + 0x3d], dil
xorps xmm0, xmm0
movups xmmword [rbp + 0xa0], xmm0
mov qword [rbp + 0xb0], rdi
mov qword [rbp + 0xb8], rdi
lea rax, [rsp + 0x40]
mov r8, rsi
inc r8
cmp byte [rax + r8], dil
jne 0x1800166a7
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0xa0]
call fcn.180005a00
nop
xor edx, edx
mov r8d, 0x108
lea rcx, [rbp + 0x130]
call sub.VCRUNTIME140.dll_memset
lea rbx, [rbp + 0xc0]
cmp qword [rbp + 0xd8], 0xf
cmova rbx, qword [rbp + 0xc0]
lea rax, [0x180000000]
lea rax, [rax + 0xa9c18]
mov qword [rbp + 0x130], rax
lea rcx, [rbp + 0x1d8]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
bts r14d, 8
mov dword [rsp + 0x38], r14d
mov dword [rsp + 0x28], r14d
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0x138]
lea rcx, [rbp + 0x130]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char______ptr64__bool____ptr64]
nop
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x130], r15
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx + 0x12c], edx
lea rcx, [rbp + 0x138]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void____ptr64]
mov qword [rbp + 0x138], r12
mov byte [rbp + 0x1b4], 0
mov byte [rbp + 0x1a9], 0
lea rcx, [rbp + 0x138]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void____ptr64]
mov qword [rbp + 0x1b8], rdi
mov rax, qword [0x1801225f8]
mov qword [rbp + 0x1ac], rax
mov qword [rbp + 0x1a0], rdi
mov r9d, 0x40
lea r8d, [r9 - 0x3e]
mov rdx, rbx
lea rcx, [rbp + 0x138]
call fcn.18001b590
test rax, rax
jne 0x1800167f1
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x130]
add rcx, rax
xor r8d, r8d
lea edx, [r8 + 2]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool____ptr64]
nop
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x130], r15
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx + 0x12c], edx
lea rdx, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0xf
cmova rdx, qword [rbp + 0xa0]
mov r8, qword [rbp + 0xb0]
lea rcx, [rbp + 0x130]
call fcn.18000dc70
lea rdx, [0x18000f860]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
lea rcx, [rbp + 0x138]
call fcn.18001a4c0
test rax, rax
jne 0x18001688a
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x130]
add rcx, rax
xor r8d, r8d
lea edx, [r8 + 2]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool____ptr64]
nop
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x130], r15
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx + 0x12c], edx
lea rcx, [rbp + 0x138]
call fcn.180011240
lea rcx, [rbp + 0x140]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x1d8]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rdx, qword [rbp + 0xb8]
cmp rdx, 0xf
jbe 0x180016934
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001692b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18001692b
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov bl, 1
test r8d, r8d
jne 0x180017070
jmp 0x180016567
call fcn.1800a26cc
jmp 0x180016934
xor edi, edi
mov dword [rsp + 0x28], 0x1f0f1836
mov dword [rsp + 0x2c], 0x5f041f07
mov dword [rsp + 0x30], 0x15061e
mov byte [rsp + 0x34], 1
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea eax, [rcx + 0x6a]
xor byte [rsp + rcx + 0x28], al
inc rcx
cmp rcx, 0xb
jb 0x180016960
mov byte [rsp + 0x34], 0
mov r12, qword [rbp + 0x90]
lea rax, [rsp + 0x28]
mov rbx, rsi
inc rbx
cmp byte [rax + rbx], 0
jne 0x180016984
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, r12
cmp rax, rbx
jb 0x1800170a9
lea rax, [rbp + 0x80]
cmp qword [rbp + 0x98], 0xf
cmova rax, qword [rbp + 0x80]
mov qword [rbp + 0x50], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x60], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x70], xmm1
lea r15, [rbx + r12]
mov edi, 0xf
lea r14, [rbp + 0x60]
cmp r15, rdi
jbe 0x180016a69
mov rdi, r15
or rdi, 0xf
cmp rdi, rcx
jbe 0x180016a26
mov rdi, rcx
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.1800a28cc
test rax, rax
je 0x180016cdf
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
mov rax, qword [rbp + 0x50]
jmp 0x180016a65
cmp rdi, 0x16
mov ecx, 0x16
cmovb rdi, rcx
lea rcx, [rdi + 1]
cmp rcx, 0x1000
jb 0x180016a4f
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180017088
jmp 0x180016a03
test rcx, rcx
je 0x180016a62
call fcn.1800a28cc
mov r14, rax
mov rax, qword [rbp + 0x50]
jmp 0x180016a65
xor r14d, r14d
mov qword [rbp + 0x60], r14
mov qword [rbp + 0x70], r15
mov qword [rbp + 0x78], rdi
mov r8, r12
mov rdx, rax
mov rcx, r14
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [r14 + r12]
mov r8, rbx
lea rdx, [rsp + 0x28]
call sub.VCRUNTIME140.dll_memcpy
mov byte [r14 + r15], 0
mov r14d, dword [rsp + 0x38]
or r14d, 0x40
xor edx, edx
mov r8d, 0x108
lea rcx, [rbp + 0x240]
call sub.VCRUNTIME140.dll_memset
lea rbx, [rbp + 0x60]
cmp qword [rbp + 0x78], 0xf
cmova rbx, qword [rbp + 0x60]
lea rax, [0x180000000]
lea rax, [rax + 0xa9c18]
mov qword [rbp + 0x240], rax
lea rcx, [rbp + 0x2e8]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
bts r14d, 7
mov dword [rsp + 0x28], r14d
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0x248]
lea rcx, [rbp + 0x240]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char______ptr64__bool____ptr64]
nop
mov rax, qword [rbp + 0x240]
movsxd rcx, dword [rax + 4]
lea rdi, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x240], rdi
mov rax, qword [rbp + 0x240]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx + 0x23c], edx
lea rcx, [rbp + 0x248]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void____ptr64]
lea rax, vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov qword [rbp + 0x248], rax
mov byte [rbp + 0x2c4], 0
mov byte [rbp + 0x2b9], 0
lea rcx, [rbp + 0x248]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void____ptr64]
xor r14d, r14d
mov qword [rbp + 0x2c8], r14
mov rax, qword [0x1801225f8]
mov qword [rbp + 0x2bc], rax
mov qword [rbp + 0x2b0], r14
lea r9d, [r14 + 0x40]
lea r8d, [r14 + 2]
mov rdx, rbx
lea rcx, [rbp + 0x248]
call fcn.18001b590
test rax, rax
jne 0x180016bce
mov rax, qword [rbp + 0x240]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x240]
add rcx, rax
xor r8d, r8d
lea edx, [r14 + 2]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool____ptr64]
nop
mov rax, qword [rbp + 0x240]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x240], rdi
mov rax, qword [rbp + 0x240]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx + 0x23c], edx
mov rdx, r13
cmp qword [r13 + 0x18], 0xf
jbe 0x180016c07
mov rdx, qword [r13]
mov r8, qword [r13 + 0x10]
lea rcx, [rbp + 0x240]
call fcn.18000dc70
lea rdx, [0x18000f860]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
lea rcx, [rbp + 0x248]
call fcn.18001a4c0
test rax, rax
jne 0x180016c5b
mov rax, qword [rbp + 0x240]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x240]
add rcx, rax
xor r8d, r8d
lea edx, [r8 + 2]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool____ptr64]
nop
mov rax, qword [rbp + 0x240]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x240], rdi
mov rax, qword [rbp + 0x240]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx + 0x23c], edx
lea rcx, [rbp + 0x248]
call fcn.180011240
lea rcx, [rbp + 0x250]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x2e8]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rdx, qword [rbp + 0x78]
cmp rdx, 0xf
jbe 0x180016ceb
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180016ce6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180016ce6
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800a26cc
movdqa xmm0, xmmword [0x1800aa1a0]
movdqu xmmword [rbp + 0x70], xmm0
mov byte [rbp + 0x60], 0
mov rdx, qword [rbp + 0xd8]
cmp rdx, 0xf
jbe 0x180016d45
inc rdx
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180016d3b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180016d3b
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800a26cc
jmp 0x180016d45
xor r14d, r14d
mov rcx, qword [rbp + 0x120]
mov qword [rbp + 0x40], rcx
test rcx, rcx
je 0x180016ec1
mov ecx, dword [0x180123958]
mov rax, qword gs:[0x58]
mov edx, 4
mov rax, qword [rax + rcx*8]
mov ecx, dword [rdx + rax]
cmp dword [0x1801225f4], ecx
jg 0x1800170af
mov rcx, qword [0x180121e08]
mov rdi, qword [rcx]
test rdi, rdi
jne 0x180016da6
mov rax, qword [rbp + 0x40]
mov rdi, qword [rax]
test rdi, rdi
je 0x180016e28
mov rdi, qword [rdi + 0x38]
mov qword [rcx], rdi
lea rax, [0x1800cd210]
mov qword [rbp + 0x50], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0xa0], xmm0
lea r12, [rbp + 0x3a8]
movabs rax, 0x1d0164d8541d
mov qword [rbp + 0xa8], rax
mov qword [rbp + 0xb0], r12
mov rbx, qword [r12]
xor rbx, rax
mov qword [rbp + 0xa0], rbx
mov qword [r12], r14
mov ecx, r14d
lea r15, [0x18000fa70]
mov rax, qword [0x180121fb0]
test rax, rax
je 0x180016e5c
mov rdx, r14
lea r8, [0x180000000]
nop dword [rax]
cmp rax, r15
je 0x180016e4f
inc ecx
mov edx, ecx
mov rax, qword [r8 + rcx*8 + 0x121fb0]
test rax, rax
jne 0x180016e10
jmp 0x180016e5c
lea rcx, [rbp + 0x80]
call fcn.180004750
nop
lea rcx, [rbp + 0xe0]
call fcn.1800116c0
nop
mov rcx, r13
call fcn.180004750
jmp 0x180016ff4
mov rax, qword [r8 + rdx*8 + 0x1222d0]
test rax, rax
jne 0x180016e8c
mov rcx, r15
call fcn.18001ae00
mov rdx, qword [0x180121fa0]
lea rcx, [0x180000000]
mov qword [rcx + rdx*8 + 0x121fb0], r15
mov qword [rcx + rdx*8 + 0x1222d0], rax
inc rdx
mov qword [0x180121fa0], rdx
lea r9, [rbp + 0x50]
lea r8, [rbp + 0x80]
lea rdx, [rbp + 0x40]
mov rcx, rdi
call rax
nop
movabs rcx, 0x1d0164d8541d
xor rbx, rcx
mov qword [r12], rbx
mov byte [0x1801225f0], al
mov rcx, qword [rbp + 0x120]
jmp 0x180016ec8
movzx eax, byte [0x1801225f0]
test al, al
je 0x180016ed2
mov rax, qword [rcx]
call qword [rax + 0x40]
lea rax, [rbp + 0x80]
cmp qword [rbp + 0x98], 0xf
cmova rax, qword [rbp + 0x80]
mov qword [rbp + 0x50], rax
nop dword [rax]
inc rsi
cmp byte [rax + rsi], 0
jne 0x180016ef0
mov qword [rbp + 0x58], rsi
xor r8d, r8d
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0x60]
call fcn.18000cd00
nop
mov qword [rbp + 0x50], 0
lea rax, [0x1800cd240]
mov qword [rbp + 0x58], rax
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0x60]
call fcn.18001bc00
cmp dword [rbp + 0x50], 0
jne 0x18001702b
lea rcx, [rbp + 0x60]
call fcn.18001a090
nop
mov rdx, qword [rbp + 0x98]
cmp rdx, 0xf
jbe 0x180016f86
inc rdx
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180016f81
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180016f81
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800a26cc
mov qword [rbp + 0x90], r14
mov qword [rbp + 0x98], 0xf
mov byte [rbp + 0x80], 0
lea rcx, [rbp + 0xe0]
call fcn.1800116c0
nop
mov rdx, qword [r13 + 0x18]
cmp rdx, 0xf
jbe 0x180016fe3
inc rdx
mov rcx, qword [r13]
cmp rdx, 0x1000
jb 0x180016fde
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x180017024
mov rcx, r8
call fcn.1800a26cc
mov qword [r13 + 0x10], r14
mov qword [r13 + 0x18], 0xf
mov byte [r13], 0
mov rcx, qword [rbp + 0x370]
xor rcx, rsp
call fcn.1800a2760
lea r11, [rsp + 0x480]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
lea r8, [rbp + 0x60]
lea rdx, [rbp + 0x50]
lea rcx, str.remove_all
call fcn.180019e80
nop
lea r8, [rbp + 0x60]
lea rdx, [rbp + 0x50]
lea rcx, str.exists
call fcn.180019e80
nop
lea r8, [rbp + 0x60]
lea rdx, [rbp + 0x50]
lea rcx, str.exists
call fcn.180019e80
nop
call fcn.180004120
nop
lea r8, [rbp + 0xa0]
lea rdx, [rbp + 0x50]
lea rcx, str.exists
call fcn.180019e80
nop
call fcn.180004120
nop
shr rdx, 0x20
lea r8, [rbp + 0x60]
lea rcx, str.create_directory
call fcn.180019ee0
nop
call fcn.180008b60
nop
call fcn.180008b60
nop
lea rcx, [0x1801225f4]
call fcn.1800a2854
cmp dword [0x1801225f4], 0xffffffff
jne 0x180016d80
lea rcx, [0x1800a6fb0]
call fcn.1800a2ce0
lea rcx, [0x1801225f4]
call fcn.1800a27e8
jmp 0x180016d80