Function at 0x18000dc40
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x340]
sub rsp, 0x440
xor ebx, ebx
mov dword [rbp + 0x380], ebx
lea rsi, [0x18043f5f8]
movzx ecx, byte [0x18043f5f8]
test cl, cl
je 0x18000dc92
mov rax, rsi
nop dword [rax]
cmp cl, 0x20
jne 0x18000dc88
mov byte [rax], 0x5f
inc rax
movzx ecx, byte [rax]
test cl, cl
jne 0x18000dc80
mov dword [rsp + 0x20], 1
mov r9d, 0x40
lea r8d, [r9 - 0x3f]
lea rdx, str.C:VISIONConfig_List.ini
lea rcx, [rbp + 0x120]
call fcn.180003e00
nop
lea rax, [0x1800c1be8]
mov qword [rbp - 0x60], rax
lea rcx, [rbp + 0x48]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
mov dword [rbp + 0x380], 1
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp - 0x58]
lea rcx, [rbp - 0x60]
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 - 0x60]
movsxd rcx, dword [rax + 4]
lea r14, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x60], r14
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx - 0x64], edx
lea rcx, [rbp - 0x58]
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 - 0x58], rax
mov byte [rbp + 0x24], 0
mov byte [rbp + 0x19], 0
lea rcx, [rbp - 0x58]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void____ptr64]
mov qword [rbp + 0x28], rbx
mov rax, qword [0x18043fa78]
mov qword [rbp + 0x1c], rax
mov qword [rbp + 0x10], rbx
lea rax, [rbp + 0xb0]
mov qword [rbp + 0x380], rax
mov qword [rbp + 0xb0], rbx
xorps xmm0, xmm0
movups xmmword [rbp + 0xb8], xmm0
mov qword [rbp + 0xc8], rbx
mov edi, 0xf
mov qword [rbp + 0xd0], rdi
mov byte [rbp + 0xb8], 0
lea rax, [rsp + 0x50]
mov qword [rbp + 0x388], rax
lea rcx, [rbp + 0x120]
mov qword [rsp + 0x50], rcx
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], rdi
mov byte [rsp + 0x58], 0
lea rdx, [rsp + 0x58]
call fcn.1800020e0
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::operator__void_const___ptr64]
test al, al
je 0x18000ddd5
mov qword [rsp + 0x50], rbx
mov r9, rsi
lea r8, [rbp + 0xb0]
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0xf8]
call fcn.180003540
nop
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
cmp qword [rbp + 0xf8], rbx
sete byte [0x18043f4bc]
lea rcx, [rbp + 0x130]
call fcn.18000cfd0
test rax, rax
jne 0x18000de39
mov rax, qword [rbp + 0x120]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x120]
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]
cmp byte [0x18043f5f8], 0
je 0x18000e4a5
cmp byte [0x18043f4bc], 0
je 0x18000e4a5
mov r15, qword [0x18043e888]
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rsi + rbx], 0
jne 0x18000de61
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, r15
cmp rax, rbx
jb 0x18000e5ac
lea r13, str.C:VISION_
cmp qword [0x18043e890], 0xf
cmova r13, qword [str.C:VISION_]
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
lea r12, [rbx + r15]
mov rsi, rdi
lea r14, [rsp + 0x30]
movabs rax, 0x8000000000000000
mov edx, 0x16
cmp r12, rdi
jbe 0x18000df3a
mov rsi, r12
or rsi, 0xf
cmp rsi, rcx
jbe 0x18000def9
mov rsi, rcx
add rax, 0x27
mov rcx, rax
call fcn.18005e95c
test rax, rax
je 0x18000df1c
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
jmp 0x18000df35
cmp rsi, rdx
cmovb rsi, rdx
lea rcx, [rsi + 1]
cmp rcx, 0x1000
jb 0x18000df23
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18000e5a0
jmp 0x18000dede
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
test rcx, rcx
je 0x18000df32
call fcn.18005e95c
mov r14, rax
jmp 0x18000df35
xor r14d, r14d
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], rsi
mov r8, r15
mov rdx, r13
mov rcx, r14
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [r14 + r15]
mov r8, rbx
lea rdx, [0x18043f5f8]
call sub.VCRUNTIME140.dll_memcpy
mov byte [r14 + r12], 0
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
mov rax, rdx
sub rax, rcx
cmp rax, 4
jb 0x18000dfab
lea rax, [rcx + 4]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x30]
cmp rdx, 0xf
cmova rax, qword [rsp + 0x30]
mov dword [rax + rcx], 0x696e692e
mov byte [rax + rcx + 4], 0
lea rax, [rsp + 0x30]
jmp 0x18000dfd2
mov qword [rsp + 0x20], 4
lea r9, str..ini
movzx r8d, byte [rbp + 0x380]
mov edx, 4
lea rcx, [rsp + 0x30]
call fcn.180001720
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x78], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x78], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x78], xmm1
xor r15d, r15d
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], rdi
mov byte [rax], r15b
mov dword [rsp + 0x20], 1
lea r9d, [r15 + 0x40]
lea r8d, [r15 + 2]
lea rdx, [rsp + 0x78]
lea rcx, [rbp + 0x230]
call fcn.180003f20
nop
mov rdx, qword [rbp - 0x70]
cmp rdx, 0xf
jbe 0x18000e061
inc rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000e05c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18000e05c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18005e998
movdqa xmm0, xmmword [0x1800c23a0]
movdqu xmmword [rbp - 0x78], xmm0
mov byte [rsp + 0x78], 0
mov rdx, qword [rsp + 0x48]
cmp rdx, 0xf
jbe 0x18000e0b3
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000e0ae
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18000e0ae
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18005e998
movdqa xmm0, xmmword [0x1800c23a0]
movdqu xmmword [rsp + 0x40], xmm0
mov byte [rsp + 0x30], 0
call fcn.18000c8e0
mov rsi, qword [0x18043e888]
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, rsi
cmp rax, 0xf
jb 0x18000e59a
cmp qword [0x18043e890], 0xf
lea rax, str.C:VISION_
cmova rax, qword [str.C:VISION_]
mov qword [rbp + 0x380], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x60], xmm1
lea r14, [rsi + 0xf]
lea rbx, [rsp + 0x50]
cmp r14, 0xf
jbe 0x18000e1b8
mov rdi, r14
or rdi, 0xf
cmp rdi, rcx
jbe 0x18000e171
mov rdi, rcx
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.18005e95c
test rax, rax
je 0x18000e28b
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
mov rax, qword [rbp + 0x380]
jmp 0x18000e1b3
cmp rdi, 0x16
mov ecx, 0x16
cmovb rdi, rcx
lea rcx, [rdi + 1]
cmp rcx, 0x1000
jb 0x18000e19a
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18000e5a6
jmp 0x18000e14b
test rcx, rcx
je 0x18000e1b0
call fcn.18005e95c
mov rbx, rax
mov rax, qword [rbp + 0x380]
jmp 0x18000e1b3
mov rbx, r15
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x68], rdi
mov r8, rsi
mov rdx, rax
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy
movsd xmm0, qword [str.Config_List.ini]
movsd qword [rbx + rsi], xmm0
mov eax, dword [0x1800c1c30]
mov dword [rbx + rsi + 8], eax
movzx eax, word [0x1800c1c34]
mov word [rbx + rsi + 0xc], ax
movzx eax, byte [0x1800c1c36]
mov byte [rbx + rsi + 0xe], al
mov byte [rbx + r14], 0
lea rdx, [rsp + 0x50]
cmp qword [rsp + 0x68], 0xf
cmova rdx, qword [rsp + 0x50]
mov r9d, 0x40
lea r8d, [r9 - 0x36]
lea rcx, [rbp - 0x58]
call fcn.18000f9a0
xor r8d, r8d
test rax, rax
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x60]
je 0x18000e248
add rcx, rax
xor edx, edx
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::clear_int__bool____ptr64]
jmp 0x18000e257
add rcx, rax
mov edx, 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 rdx, qword [rsp + 0x68]
cmp rdx, 0xf
jbe 0x18000e297
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000e292
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18000e292
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18005e998
lea rdx, [0x18043f5f8]
lea rcx, [rbp - 0x60]
call fcn.180002340
mov rcx, rax
lea rdx, [0x1800c1bf0]
call fcn.180002340
lea rcx, [rbp - 0x58]
cmp qword [rbp + 0x28], 0
je 0x18000e3fb
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::eback_void_const___ptr64]
lea rcx, [rbp + 0x18]
cmp rax, rcx
jne 0x18000e2e9
mov r9, qword [rbp + 0x38]
mov rdx, qword [rbp + 0x30]
mov r8, rdx
lea rcx, [rbp - 0x58]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::setg_char____ptr64__char____ptr64__char____ptr64____ptr64]
cmp qword [rbp + 0x10], 0
je 0x18000e364
cmp byte [rbp + 0x19], 0
je 0x18000e364
mov rax, qword [rbp - 0x58]
mov r8, qword [rax + 0x18]
lea rax, [fcn.18000fae0]
mov edx, 0xffffffff
lea rcx, [rbp - 0x58]
cmp r8, rax
jne 0x18000e31a
call fcn.18000fae0
jmp 0x18000e31d
call r8
cmp eax, 0xffffffff
jne 0x18000e326
xor bl, bl
jmp 0x18000e366
lea rax, [rbp + 0x380]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0xf8]
lea r8, [rbp + 0xd8]
lea rdx, [rbp + 0x1c]
mov rcx, qword [rbp + 0x10]
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_char__char__struct__Mbstatet_::unshift_struct__Mbstatet____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x18000e3b3
sub eax, 1
je 0x18000e3b7
cmp eax, 2
je 0x18000e360
xor bl, bl
jmp 0x18000e366
mov byte [rbp + 0x19], 0
mov bl, 1
mov rcx, qword [rbp + 0x28]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
lea rcx, [rbp - 0x58]
test bl, bl
cmove rcx, r15
mov rbx, r15
test eax, eax
cmove rbx, rcx
mov byte [rbp + 0x24], 0
mov byte [rbp + 0x19], 0
lea rcx, [rbp - 0x58]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void____ptr64]
mov qword [rbp + 0x28], r15
mov rax, qword [0x18043fa78]
mov qword [rbp + 0x1c], rax
mov qword [rbp + 0x10], r15
test rbx, rbx
jne 0x18000e438
jmp 0x18000e41c
mov byte [rbp + 0x19], 0
lea rax, [rbp + 0xd8]
mov rbx, qword [rbp + 0x380]
sub rbx, rax
je 0x18000e3ef
mov r9, qword [rbp + 0x28]
mov r8, rbx
mov edx, 1
lea rcx, [rbp + 0xd8]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rbx, rax
je 0x18000e3ef
xor bl, bl
jmp 0x18000e366
cmp byte [rbp + 0x19], 0
sete bl
jmp 0x18000e366
mov byte [rbp + 0x24], 0
mov byte [rbp + 0x19], 0
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void____ptr64]
mov qword [rbp + 0x28], r15
mov rax, qword [0x18043fa78]
mov qword [rbp + 0x1c], rax
mov qword [rbp + 0x10], r15
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x60]
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]
xorps xmm0, xmm0
movups xmmword [0x18043f5f8], xmm0
xorps xmm1, xmm1
movups xmmword [0x18043f618], xmm1
mov rax, qword [rbp + 0x230]
movsxd rcx, dword [rax + 4]
lea r14, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x230], r14
mov rax, qword [rbp + 0x230]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx + 0x22c], edx
lea rcx, [rbp + 0x238]
call fcn.180004690
lea rcx, [rbp + 0x240]
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 + 0x2d8]
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 + 0x118]
cmp rdx, 0xf
jbe 0x18000e4ea
inc rdx
mov rcx, qword [rbp + 0x100]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000e4e4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18000e4e4
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18005e998
nop
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x60], r14
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx - 0x64], edx
lea rcx, [rbp - 0x58]
call fcn.180004690
lea rcx, [rbp - 0x50]
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 + 0x48]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rax, qword [rbp + 0x120]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x120], rax
mov rax, qword [rbp + 0x120]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x11c], edx
lea rcx, [rbp + 0x130]
call fcn.180004690
lea rcx, [rbp + 0x138]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x1d0]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
mov rbx, qword [rsp + 0x490]
add rsp, 0x440
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.180001e50
nop
call fcn.180001e30
nop
call fcn.180001e30
nop
call fcn.180001e50
int3