Function at 0x200ac68
Capabilities:
Write file on windows

Disassembly:
mov eax, 0x200da58
call fcn.0200d650
sub esp, 0x64
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, ecx
xor ebx, ebx
mov eax, dword [ebp + 8]
cmp dword [eax + 8], ebx
je 0x200ad54
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x18], ebx
mov al, byte [ebp - 0x50]
mov byte [ebp - 0x28], al
push ebx
lea ecx, [ebp - 0x28]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov al, byte [ebp - 0x54]
mov byte [ebp - 0x40], al
push ebx
lea ecx, [ebp - 0x40]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov dword [ebp - 4], ebx
cmp byte [ebp + 0xc], bl
je 0x200ace9
lea eax, [ebp - 0x28]
push eax
mov ecx, esi
call fcn.0200b5e3
cmp dword [ebp - 0x24], ebx
je 0x200acd7
lea ecx, [ebp - 0x28]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Freeze_void_]
mov eax, dword [ebp - 0x24]
jmp 0x200acdc
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x68], eax
add eax, eax
jmp 0x200ad15
lea eax, [ebp - 0x40]
push eax
mov ecx, esi
call fcn.0200b7c6
mov dword [ebp - 0x6c], ebx
cmp dword [ebp - 0x3c], ebx
je 0x200ad0a
lea ecx, [ebp - 0x40]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Freeze_void_]
mov eax, dword [ebp - 0x3c]
jmp 0x200ad0f
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x2c], eax
jmp 0x200ad35
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x18], ebx
jne 0x200ad5b
push 1
lea ecx, [ebp - 0x40]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push 1
lea ecx, [ebp - 0x28]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
xor al, al
jmp 0x200ae1c
mov byte [ebp - 0x14], 1
or dword [ebp - 0x30], 0xffffffff
push 2
pop esi
mov dword [ebp - 4], esi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
cmp eax, ebx
jne 0x200ad78
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
push ebx
push 0x80
push esi
push ebx
push ebx
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
mov dword [ebp - 0x30], edi
cmp edi, 0xffffffff
jne 0x200adac
mov dword [ebp - 0x60], str.CreateFile_failed.
push 0x200f918
lea eax, [ebp - 0x60]
push eax
call sub.MSVCRT.dll__CxxThrowException
mov dword [ebp - 0x44], ebx
cmp byte [ebp + 0xc], bl
je 0x200adcd
or byte [ebp - 0x48], 0xff
mov byte [ebp - 0x47], 0xfe
push ebx
lea eax, [ebp - 0x44]
push eax
push esi
lea eax, [ebp - 0x48]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push ebx
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x2c]
push dword [ebp - 0x18]
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x200aded
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x30], 0xffffffff
je 0x200ae00
push dword [ebp - 0x30]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 1
lea ecx, [ebp - 0x40]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push 1
lea ecx, [ebp - 0x28]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
cmp byte [ebp - 0x14], bl
setne al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret 8