Function at 0x419b87
Capabilities:
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x8ec]
sub esp, 0x96c
mov eax, dword [0x437b00]
xor eax, ebp
mov dword [ebp + 0x8e8], eax
mov eax, dword [ebp + 0x8f4]
push esi
mov dword [ebp - 0x7c], eax
xor esi, esi
xor eax, eax
cmp word [0x43b8b8], si
je 0x419cb3
push edi
push 0x4b0
mov word [ebp + 0x438], ax
lea eax, [ebp + 0x438]
push eax
push str.SaveDir
push str._others
call dword [sym.imp.PPLIB32W.DLL__GetCustTable_16]
mov edi, dword [sym.imp.PPLIB32W.DLL__VFSFullPath_12]
lea eax, [ebp + 0x438]
cmp word [ebp + 0x438], si
jne 0x419c05
push str.5:_
push eax
push esi
call dword [sym.imp.PPLIB32W.DLL__VFSGetRealPath_12]
jmp 0x419c1d
push esi
push esi
push eax
call dword [sym.imp.PPLIB32W.DLL__VFSGetDriveType_12]
test eax, eax
jne 0x419c1d
push esi
lea eax, [ebp + 0x438]
push eax
push esi
call edi
push ebx
lea eax, [ebp + 0x438]
push eax
mov ebx, 0x43b8b8
push ebx
lea eax, [ebp - 0x78]
push eax
call edi
push 0x800
push 0x3300
push 0x258
lea eax, [ebp - 0x78]
push eax
push str.SAVESave
push dword [ebp - 0x7c]
call dword [sym.imp.PPLIB32W.DLL__tInput_24]
test eax, eax
jle 0x419caf
push 0x1b
lea eax, [ebp + 0x438]
push eax
lea eax, [ebp - 0x78]
push eax
push esi
call dword [sym.imp.PPLIB32W.DLL__VFSFixPath_16]
push esi
push 0x80
push 3
push esi
push 3
push 0x80000000
lea eax, [ebp - 0x78]
push eax
call dword [sym.imp.PPLIB32W.DLL__CreateFileL_28]
cmp eax, 0xffffffff
je 0x419ccb
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x23
push str.File_exist
push str.QSAMOver_write_ok_
push dword [ebp - 0x7c]
call dword [sym.imp.PPLIB32W.DLL__PMessageBox_16]
cmp eax, 6
je 0x419ccb
cmp eax, 7
je 0x419c31
xor eax, eax
pop ebx
pop edi
mov ecx, dword [ebp + 0x8e8]
xor ecx, ebp
pop esi
call fcn.00422725
add ebp, 0x8ec
leave
ret 4
mov eax, dword [0x43b8a8]
cmp eax, 4
je 0x419cde
cmp eax, 5
jne 0x419d60
call fcn.00419963
test eax, eax
je 0x419d60
mov esi, dword [sym.imp.PPLIB32W.DLL__VFSFindLastEntry_4]
push ebx
call esi
mov edi, dword [sym.imp.PPLIB32W.DLL__FindExtSeparator_4]
mov ebx, eax
push ebx
call edi
lea ebx, [ebx + eax*2]
lea eax, [ebp - 0x78]
push eax
call esi
mov esi, eax
push esi
call edi
lea eax, [esi + eax*2]
push eax
push ebx
call fcn.00422929
pop ecx
pop ecx
test eax, eax
je 0x419d5e
mov eax, dword [0x43ca60]
mov edx, dword [eax + 0x20]
mov esi, dword [eax]
movzx ecx, word [eax + 0xe]
test edx, edx
jne 0x419d33
cmp ecx, 8
jg 0x419d36
inc edx
shl edx, cl
shl edx, 2
cmp dword [eax + 0x10], 3
jne 0x419d44
cmp esi, 0x34
jae 0x419d44
add esi, 0xc
lea ecx, [ebp - 0x78]
push ecx
push dword [eax + 0x14]
add edx, esi
push dword [0x43ca58]
push edx
push eax
call fcn.00419aa5
test eax, eax
je 0x419dc5
xor esi, esi
push esi
push 0x8000000
push 2
push esi
push esi
push 0x40000000
lea eax, [ebp - 0x78]
push eax
call dword [sym.imp.PPLIB32W.DLL__CreateFileL_28]
mov edi, eax
push esi
cmp edi, 0xffffffff
jne 0x419d94
push str.File_open_error
push dword [ebp - 0x7c]
call dword [sym.imp.PPLIB32W.DLL__PPErrorBox_12]
jmp 0x419caf
lea eax, [ebp - 0x80]
push eax
push dword [0x43bd70]
push dword [0x43bd68]
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x419dbe
push esi
push str.File_write_error
push dword [ebp - 0x7c]
call dword [sym.imp.PPLIB32W.DLL__PPErrorBox_12]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
inc eax
jmp 0x419cb1