Function at 0x4025fa
Capabilities:
Delete file
Get common file path
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd0
mov byte [ebp - 0xe], 0
movzx eax, byte [ebp - 0xe]
test eax, eax
je 0x40261b
movzx eax, byte [ebp - 0xe]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0xe], al
movzx eax, byte [ebp - 0xe]
test eax, eax
je 0x402627
mov byte [ebp - 0xe], 0
movzx eax, byte [ebp - 0xe]
test eax, eax
jne 0x402633
mov byte [ebp - 0xe], 0
mov byte [ebp - 0xd], 0
movzx eax, byte [ebp - 0xd]
test eax, eax
je 0x40264b
movzx eax, byte [ebp - 0xd]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0xd], al
movzx eax, byte [ebp - 0xd]
test eax, eax
je 0x402657
mov byte [ebp - 0xd], 0
movzx eax, byte [ebp - 0xd]
test eax, eax
jne 0x402663
mov byte [ebp - 0xd], 0
push 0
call dword [sym.imp.USER32.dll_GetClipCursor]
push 0x105
call fcn.004013bb
pop ecx
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov byte [eax], 0
mov byte [ebp - 0x1e], 0
movzx eax, byte [ebp - 0x1e]
test eax, eax
je 0x4026a3
movzx eax, byte [ebp - 0x1e]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x1e], al
movzx eax, byte [ebp - 0x1e]
test eax, eax
je 0x4026af
mov byte [ebp - 0x1e], 0
movzx eax, byte [ebp - 0x1e]
test eax, eax
jne 0x4026bb
mov byte [ebp - 0x1e], 0
mov word [ebp - 0x24], 0xe3
push 0
call dword [sym.imp.KERNEL32.DLL_CancelIo]
push 0x105
call fcn.004013bb
pop ecx
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov byte [eax], 0
mov byte [ebp - 0x15], 0x15
mov byte [ebp - 0x15], 0x8e
movsx eax, byte [ebp - 0x15]
dec eax
mov byte [ebp - 0x15], al
movsx eax, byte [ebp - 0x15]
add eax, 0x3e
mov byte [ebp - 0x15], al
mov word [ebp - 0xc], 0x57
call dword [sym.imp.USER32.dll_GetActiveWindow]
push 0
call dword [sym.imp.GDI32.dll_EndDoc]
push dword [ebp - 4]
push 1
push 0x4011b4
call fcn.00404d6f
pop ecx
push eax
push dword [0x40601c]
call dword [sym.imp.KERNEL32.DLL_GetTempFileNameA]
mov word [ebp - 0x2c], 0xb8
mov byte [ebp - 0x1d], 1
movzx eax, byte [ebp - 0x1d]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x1d], al
movzx eax, byte [ebp - 0x1d]
test eax, eax
jne 0x40275e
movzx eax, byte [ebp - 0x1d]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x1d], al
movzx eax, byte [ebp - 0x1d]
test eax, eax
je 0x40276a
mov byte [ebp - 0x1d], 1
movzx eax, byte [ebp - 0x1d]
test eax, eax
jne 0x402776
mov byte [ebp - 0x1d], 1
push 0
call dword [sym.imp.USER32.dll_GetTopWindow]
push dword [ebp - 4]
push 0x4011bc
call fcn.00404d6f
pop ecx
push eax
call fcn.004040fa
pop ecx
pop ecx
test eax, eax
je 0x402be2
mov byte [ebp - 0x35], 1
movzx eax, byte [ebp - 0x35]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x35], al
movzx eax, byte [ebp - 0x35]
test eax, eax
jne 0x4027c0
movzx eax, byte [ebp - 0x35]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x35], al
movzx eax, byte [ebp - 0x35]
test eax, eax
je 0x4027cc
mov byte [ebp - 0x35], 1
movzx eax, byte [ebp - 0x35]
test eax, eax
jne 0x4027d8
mov byte [ebp - 0x35], 1
mov byte [ebp - 0x45], 1
movzx eax, byte [ebp - 0x45]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x45], al
movzx eax, byte [ebp - 0x45]
test eax, eax
jne 0x4027fc
movzx eax, byte [ebp - 0x45]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x45], al
movzx eax, byte [ebp - 0x45]
test eax, eax
je 0x402808
mov byte [ebp - 0x45], 1
movzx eax, byte [ebp - 0x45]
test eax, eax
jne 0x402814
mov byte [ebp - 0x45], 1
push 0
push 0
call dword [sym.imp.GDI32.dll_GetBrushOrgEx]
push 0
call dword [sym.imp.GDI32.dll_EndPage]
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], 0x1bb
mov dword [ebp - 0x40], 0xda
mov eax, dword [ebp - 0x40]
dec eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
add eax, 0xb1
mov dword [ebp - 0x40], eax
mov word [ebp - 0x44], 2
call dword [sym.imp.USER32.dll_DestroyCaret]
push 0
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.DLL_GetFileSize]
mov dword [ebp - 0x34], eax
mov word [ebp - 0x30], 0x5a
mov word [ebp - 0x4c], 0xba
push 0x4011dc
push 0
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
cmp dword [ebp - 0x3c], 0xffffffff
je 0x402be2
mov eax, dword [ebp - 0x34]
inc eax
push eax
call fcn.004013bb
pop ecx
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x54], 0xeef
mov byte [ebp - 0x4e], 1
movzx eax, byte [ebp - 0x4e]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x4e], al
movzx eax, byte [ebp - 0x4e]
test eax, eax
jne 0x4028e6
movzx eax, byte [ebp - 0x4e]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x4e], al
movzx eax, byte [ebp - 0x4e]
test eax, eax
je 0x4028f2
mov byte [ebp - 0x4e], 1
movzx eax, byte [ebp - 0x4e]
test eax, eax
jne 0x4028fe
mov byte [ebp - 0x4e], 1
push 0
call dword [sym.imp.GDI32.dll_PathToRegion]
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0
mov dword [ebp - 0x7c], 0x152
mov dword [ebp - 0x7c], 0x13
mov eax, dword [ebp - 0x7c]
inc eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x60], 0x49c
call dword [sym.imp.USER32.dll_GetActiveWindow]
push 0
call dword [sym.imp.GDI32.dll_WidenPath]
mov byte [ebp - 0x71], 1
movzx eax, byte [ebp - 0x71]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x71], al
movzx eax, byte [ebp - 0x71]
test eax, eax
jne 0x40295a
movzx eax, byte [ebp - 0x71]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x71], al
movzx eax, byte [ebp - 0x71]
test eax, eax
je 0x402966
mov byte [ebp - 0x71], 1
movzx eax, byte [ebp - 0x71]
test eax, eax
jne 0x402972
mov byte [ebp - 0x71], 1
mov dword [ebp - 0x64], 0x166
call dword [sym.imp.USER32.dll_GetActiveWindow]
push 0
call dword [sym.imp.GDI32.dll_CancelDC]
push 0
push 0
push 0
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.DLL_SetFilePointer]
mov word [ebp - 0x70], 0xe6
mov word [ebp - 0x84], 0x81
push 0
call dword [sym.imp.USER32.dll_GetCaretPos]
push 0
lea eax, [ebp - 0x88]
push eax
push dword [ebp - 0x34]
push dword [ebp - 0x5c]
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x402b45
mov eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0x88]
mov byte [eax], 0
mov word [ebp - 0x98], 0x32
mov word [ebp - 0xa0], 0x9c
push 0x74
push 0x12f
push 0
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push 0
call dword [sym.imp.USER32.dll_GetCaretPos]
push dword [ebp - 0x5c]
call fcn.00404d6f
pop ecx
mov dword [ebp - 0x5c], eax
mov byte [ebp - 0x99], 0x10
mov byte [ebp - 0x99], 0x57
movsx eax, byte [ebp - 0x99]
inc eax
mov byte [ebp - 0x99], al
mov byte [ebp - 0xa5], 0x36
mov byte [ebp - 0xa5], 0x18
movsx eax, byte [ebp - 0xa5]
dec eax
mov byte [ebp - 0xa5], al
movsx eax, byte [ebp - 0xa5]
add eax, 0xbc
mov byte [ebp - 0xa5], al
push 0
call dword [sym.imp.KERNEL32.DLL_GetThreadPriority]
mov dword [ebp - 0x8c], 0x12ba
mov byte [ebp - 0xb5], 3
mov byte [ebp - 0xb5], 0x4e
movsx eax, byte [ebp - 0xb5]
dec eax
mov byte [ebp - 0xb5], al
movsx eax, byte [ebp - 0xb5]
add eax, 0x77
mov byte [ebp - 0xb5], al
push 0
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push 0
call dword [sym.imp.GDI32.dll_EndPage]
lea eax, [ebp - 0x90]
push eax
push dword [ebp - 0x5c]
call fcn.00404353
pop ecx
pop ecx
mov dword [ebp - 0xb4], eax
mov word [ebp - 0xac], 0xc3
mov dword [ebp - 0xb0], 0x1c3
mov dword [ebp - 0xb0], 0x1b
mov eax, dword [ebp - 0xb0]
inc eax
mov dword [ebp - 0xb0], eax
call dword [sym.imp.USER32.dll_GetCapture]
cmp dword [ebp - 0x90], 0
jbe 0x402b02
push dword [ebp - 0xb4]
call fcn.00403087
pop ecx
mov word [ebp - 0x94], 0x25
mov dword [ebp - 0xa4], 0x20f
mov dword [ebp - 0xa4], 0xb4
mov eax, dword [ebp - 0xa4]
dec eax
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa4]
add eax, 0xee
mov dword [ebp - 0xa4], eax
push 0
call dword [sym.imp.GDI32.dll_UnrealizeObject]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xc8], eax
push dword [ebp - 0xc8]
call fcn.004013a4
pop ecx
mov byte [ebp - 0x69], 0x1e
mov byte [ebp - 0x69], 0x8d
movsx eax, byte [ebp - 0x69]
dec eax
mov byte [ebp - 0x69], al
movsx eax, byte [ebp - 0x69]
add eax, 0x3a
mov byte [ebp - 0x69], al
mov byte [ebp - 0x7d], 1
mov byte [ebp - 0x7d], 0x30
movsx eax, byte [ebp - 0x7d]
dec eax
mov byte [ebp - 0x7d], al
movsx eax, byte [ebp - 0x7d]
add eax, 0x24
mov byte [ebp - 0x7d], al
call dword [sym.imp.KERNEL32.DLL_GetCurrentThread]
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov dword [ebp - 0x78], 0x148c
mov word [ebp - 0x58], 0xd8
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.DLL_DeleteFileA]
mov dword [ebp - 0x68], 0xd57
mov byte [ebp - 0x4d], 0x35
mov byte [ebp - 0x4d], 0x65
movsx eax, byte [ebp - 0x4d]
dec eax
mov byte [ebp - 0x4d], al
movsx eax, byte [ebp - 0x4d]
add eax, 0x48
mov byte [ebp - 0x4d], al
push 0
call dword [sym.imp.GDI32.dll_UnrealizeObject]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0xcc], eax
push dword [ebp - 0xcc]
call fcn.004013a4
pop ecx
mov word [ebp - 8], 0xd2
mov byte [ebp - 0x16], 0
movzx eax, byte [ebp - 0x16]
test eax, eax
je 0x402c15
movzx eax, byte [ebp - 0x16]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x16], al
movzx eax, byte [ebp - 0x16]
test eax, eax
je 0x402c21
mov byte [ebp - 0x16], 0
movzx eax, byte [ebp - 0x16]
test eax, eax
jne 0x402c2d
mov byte [ebp - 0x16], 0
push 0
call dword [sym.imp.KERNEL32.DLL_GetThreadPriority]
mov eax, dword [ebp - 4]
mov dword [ebp - 0xd0], eax
push dword [ebp - 0xd0]
call fcn.004013a4
pop ecx
mov word [ebp - 0x1c], 0x9c
mov dword [ebp - 0x14], 0x489
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
xor eax, eax
jmp 0x402c9f
leave
ret