Function at 0x46c0d2
Capabilities:
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0xbc
mov eax, dword [ebp + 0x74]
push ebx
push esi
xor esi, esi
cmp dword [eax + 0x14], 8
push edi
mov dword [ebp + 0x68], esi
jb 0x46c0f0
mov eax, dword [eax]
push esi
push esi
push 2
pop ebx
push ebx
push esi
push esi
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
lea eax, [ebp + 0x64]
push eax
mov dword [ebp + 0x64], esi
call fcn.004376f7
cmp edi, 0xffffffff
je 0x46c11a
mov dword [ebp + 0x64], edi
cmp dword [ebp + 0x64], esi
jne 0x46c1a9
xor eax, eax
inc eax
cmp dword [0x536220], eax
jg 0x46c185
mov edi, 0x308
mov ebx, str.file_util_win.cc
lea esi, [ebp - 0x50]
mov dword [ebp + 0x68], eax
call fcn.0042b7c4
add eax, 8
push str.CreateFile_failed_for_path
push eax
call fcn.00403bcc
mov edx, dword [ebp + 0x74]
cmp dword [edx + 0x14], 8
pop ecx
pop ecx
jb 0x46c15e
mov edx, dword [edx]
push edx
mov ecx, eax
call fcn.0042bf60
pop ecx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._error_code
push esi
call fcn.00403bcc
pop ecx
pop ecx
mov ecx, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int_]
test byte [ebp + 0x68], 1
je 0x46c193
lea ebx, [ebp - 0x50]
call fcn.0042b903
or esi, 0xffffffff
lea eax, [ebp + 0x64]
push eax
call fcn.004376f7
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x6c
leave
ret
push esi
lea eax, [ebp + 0x60]
push eax
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp eax, esi
je 0x46c24e
mov esi, dword [ebp + 0x60]
cmp esi, dword [ebp + 0x7c]
je 0x46c196
xor eax, eax
inc eax
cmp dword [0x536220], eax
jg 0x46c245
mov edi, 0x318
mov ebx, str.file_util_win.cc
lea esi, [ebp - 0x50]
mov dword [ebp + 0x68], 4
call fcn.0042b7c4
push str._bytes_to
push dword [ebp + 0x60]
add eax, 8
push str.wrote
push eax
call fcn.00403bcc
pop ecx
pop ecx
mov ecx, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int_]
push eax
call fcn.00403bcc
mov edx, dword [ebp + 0x74]
cmp dword [edx + 0x14], 8
pop ecx
pop ecx
jb 0x46c224
mov edx, dword [edx]
push edx
mov ecx, eax
call fcn.0042bf60
pop ecx
push dword [ebp + 0x7c]
push str._expected
push eax
call fcn.00403bcc
pop ecx
pop ecx
mov ecx, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
test byte [ebp + 0x68], 4
jmp 0x46c189
xor eax, eax
inc eax
cmp dword [0x536220], eax
jg 0x46c2b0
mov dword [ebp + 0x68], ebx
mov edi, 0x314
mov ebx, str.file_util_win.cc
lea esi, [ebp - 0x50]
call fcn.0042b7c4
add eax, 8
push str.writing_file
push eax
call fcn.00403bcc
mov edx, dword [ebp + 0x74]
cmp dword [edx + 0x14], 8
pop ecx
pop ecx
jb 0x46c289
mov edx, dword [edx]
push edx
mov ecx, eax
call fcn.0042bf60
pop ecx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._failed__error_code
push esi
call fcn.00403bcc
pop ecx
pop ecx
mov ecx, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int_]
test byte [ebp + 0x68], 2
jmp 0x46c189