Function at 0x44f2b6
Capabilities:
Delete file
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x148
push ebx
push edi
push esi
lea eax, [ebp - 4]
mov ecx, 0
mov dword [eax], ecx
lea eax, [ebp - 8]
mov ecx, 1
mov dword [eax], ecx
lea eax, [0x7957d8]
mov ecx, dword [ebp + 8]
mov edx, 0x18
add ecx, edx
push eax
push ecx
call sub.cvirte.dll_strcmp
add esp, 8
mov ecx, 0
cmp eax, ecx
jne 0x44f312
lea eax, [ebp - 0x140]
mov ecx, 1
mov dword [eax], ecx
lea eax, [0x44f31f]
jmp eax
lea eax, [ebp - 0x140]
mov ecx, 0
mov dword [eax], ecx
lea eax, [ebp - 0x10]
mov ecx, dword [ebp - 0x140]
mov dword [eax], ecx
lea eax, [ebp - 0x24]
mov ecx, 0
mov dword [eax], ecx
lea eax, [ebp - 0x2c]
mov ecx, 0
mov dword [eax], ecx
lea eax, [ebp - 0x30]
mov ecx, 0
mov dword [eax], ecx
lea eax, [ebp - 0x138]
mov ecx, 0
mov dword [eax], ecx
call sub.cvirte.dll_GetWaitCursorState
lea ecx, [ebp - 0x13c]
mov dword [ecx], eax
mov eax, dword [ebp + 0xc]
mov ecx, 0
cmp eax, ecx
jne 0x44f37d
mov eax, dword [ebp - 0x10]
cmp eax, ecx
je 0x44f404
mov eax, dword [ebp + 8]
mov ecx, 0x18
add eax, ecx
lea ecx, str.Save_Icon
lea edx, [0x7956d4]
mov ebx, dword [ebp - 0x10]
mov edi, 0
cmp ebx, edi
je 0x44f3b9
lea ebx, [ebp - 0x144]
lea edi, [0x7956dc]
mov dword [ebx], edi
lea ebx, [0x44f3cb]
jmp ebx
mov ebx, dword [ebp + 8]
mov edi, 0x18
add ebx, edi
lea edi, [ebp - 0x144]
mov dword [edi], ebx
mov ebx, dword [ebp - 0x144]
lea edi, [0x7957e4]
push eax
push 1
push 1
push 1
push 0
push 1
push ecx
push edx
push ebx
push edi
call sub.cvirte.dll_FileSelectPopup
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
jmp 0x44f40e
mov eax, dword [ebp + 0x10]
mov ecx, 1
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov ecx, 1
cmp eax, ecx
je 0x44f42d
mov ecx, 2
cmp eax, ecx
jne 0x44f881
push 1
call sub.cvirte.dll_SetWaitCursor
lea eax, [ebp - 0x24]
mov ecx, 1
mov dword [eax], ecx
lea eax, [0x795718]
mov ecx, dword [ebp + 8]
mov edx, 0x18
add ecx, edx
push eax
push ecx
call sub.cvirte.dll_fopen
add esp, 8
lea ecx, [ebp - 4]
mov dword [ecx], eax
mov eax, dword [ebp - 4]
mov ecx, 0
cmp eax, ecx
jne 0x44f489
lea eax, [ebp - 8]
mov ecx, 0
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
mov ecx, 0
mov dword [eax], ecx
jmp 0x44f881
lea eax, [ebp - 0xc]
mov ecx, 0x10000
mov dword [eax], ecx
lea eax, [ebp - 0xc]
mov ecx, dword [ebp - 4]
push ecx
push 1
push 4
push eax
call sub.cvirte.dll_fwrite
add esp, 0x10
mov eax, dword [ebp + 8]
mov ecx, 0x10
add eax, ecx
mov eax, dword [eax]
push eax
call fcn.0042b74b
lea ecx, [ebp - 0x1c]
mov dword [ecx], eax
lea eax, [ebp - 0x1c]
mov ecx, dword [ebp - 4]
push ecx
push 1
push 2
push eax
call sub.cvirte.dll_fwrite
add esp, 0x10
mov eax, dword [ebp - 0x1c]
mov ecx, 4
shl eax, cl
mov ecx, 6
add eax, ecx
lea ecx, [ebp - 0x18]
mov dword [ecx], eax
lea eax, [ebp - 0x20]
mov ecx, 1
mov dword [eax], ecx
jmp 0x44f7be
lea eax, [ebp - 0x28]
mov ecx, dword [ebp + 8]
mov edx, 0x10
add ecx, edx
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x20]
push edx
push eax
push ecx
call fcn.0042b39b
mov eax, dword [ebp - 0x28]
mov ecx, 0x5c
add eax, ecx
mov eax, dword [eax]
mov ecx, 0
cmp eax, ecx
je 0x44f757
lea eax, [ebp - 0x148]
mov ecx, 0
mov dword [eax], ecx
lea eax, [ebp - 0x138]
push eax
mov eax, dword [ebp - 0x28]
push eax
call fcn.0044ded8
add esp, 8
mov ecx, 0
cmp eax, ecx
jge 0x44f57c
lea eax, [ebp - 8]
mov ecx, 0
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
mov ecx, 0
mov dword [eax], ecx
jmp 0x44f881
lea eax, [ebp - 0x134]
push eax
call sub.cvirte.dll_tmpnam
add esp, 4
lea eax, [0x795708]
lea ecx, [ebp - 0x134]
push eax
push ecx
call sub.cvirte.dll_strcat
add esp, 8
lea eax, [ebp - 0x134]
push eax
mov eax, dword [ebp - 0x138]
push eax
call sub.cvirte.dll_SaveBitmapToPNGFile
mov ecx, 0
cmp eax, ecx
jge 0x44f5da
lea eax, [ebp - 8]
mov ecx, 0
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
mov ecx, 0
mov dword [eax], ecx
jmp 0x44f881
mov eax, dword [ebp - 0x138]
push eax
call sub.cvirte.dll_DiscardBitmap
lea eax, [ebp - 0x138]
mov ecx, 0
mov dword [eax], ecx
lea eax, [ebp - 0x148]
lea ecx, [ebp - 0x134]
push eax
push ecx
call sub.cvirte.dll_GetFileInfo
mov ecx, 1
cmp eax, ecx
je 0x44f62c
lea eax, [ebp - 8]
mov ecx, 0
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
mov ecx, 0
mov dword [eax], ecx
jmp 0x44f881
mov eax, dword [ebp - 0x148]
push eax
call sub.cvirte.dll_malloc
add esp, 4
lea ecx, [ebp - 0x30]
mov dword [ecx], eax
mov ecx, 0
cmp eax, ecx
jne 0x44f666
lea eax, [ebp - 8]
mov ecx, 0
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
mov ecx, 0
mov dword [eax], ecx
jmp 0x44f881
lea eax, [0x795700]
lea ecx, [ebp - 0x134]
push eax
push ecx
call sub.cvirte.dll_fopen
add esp, 8
lea ecx, [ebp - 0x2c]
mov dword [ecx], eax
mov ecx, 0
cmp eax, ecx
jne 0x44f6a7
lea eax, [ebp - 8]
mov ecx, 0
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
mov ecx, 0
mov dword [eax], ecx
jmp 0x44f881
mov eax, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x2c]
push ecx
push eax
push 1
mov eax, dword [ebp - 0x30]
push eax
call sub.cvirte.dll_fread
add esp, 0x10
mov ecx, dword [ebp - 0x148]
cmp eax, ecx
je 0x44f6ea
lea eax, [ebp - 8]
mov ecx, 0
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
mov ecx, 0
mov dword [eax], ecx
jmp 0x44f881
mov eax, dword [ebp - 0x2c]
push eax
call sub.cvirte.dll_fclose
add esp, 4
lea eax, [ebp - 0x2c]
mov ecx, 0
mov dword [eax], ecx
lea eax, [ebp - 0x134]
push eax
call sub.cvirte.dll_remove
add esp, 4
lea eax, [ebp - 0x134]
mov ecx, 0
mov byte [eax], cl
mov eax, dword [ebp - 0x28]
mov ecx, 0x60
add eax, ecx
mov ecx, dword [ebp - 0x30]
mov dword [eax], ecx
mov eax, dword [ebp - 0x28]
mov ecx, 0x10
add eax, ecx
mov ecx, dword [ebp - 0x148]
mov dword [eax], ecx
lea eax, [ebp - 0x30]
mov ecx, 0
mov dword [eax], ecx
lea eax, [ebp - 0x14]
mov ecx, dword [ebp - 0x148]
mov dword [eax], ecx
jmp 0x44f78b
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov edx, 2
mov esi, ecx
mov ecx, edx
shl esi, cl
mov ecx, esi
mov edx, 0x28
add ecx, edx
mov edx, 0x10
add edx, eax
mov edx, dword [edx]
add ecx, edx
mov edx, 0x14
add eax, edx
mov eax, dword [eax]
add ecx, eax
lea eax, [ebp - 0x14]
mov dword [eax], ecx
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x28]
push eax
call fcn.0044ddc2
add esp, 0x10
lea eax, [ebp - 0x18]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x14]
add ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp - 0x20]
mov ecx, 1
add eax, ecx
lea ecx, [ebp - 0x20]
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
cmp eax, ecx
jle 0x44f503
lea eax, [ebp - 0x20]
mov ecx, 1
mov dword [eax], ecx
jmp 0x44f814
lea eax, [ebp - 0x28]
mov ecx, dword [ebp + 8]
mov edx, 0x10
add ecx, edx
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x20]
push edx
push eax
push ecx
call fcn.0042b39b
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x28]
push eax
call fcn.0044e7f5
add esp, 8
mov eax, dword [ebp - 0x20]
mov ecx, 1
add eax, ecx
lea ecx, [ebp - 0x20]
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
cmp eax, ecx
jle 0x44f7db
mov eax, dword [ebp + 8]
push eax
call fcn.00450157
add esp, 4
mov eax, dword [ebp - 8]
mov ecx, 1
cmp eax, ecx
jne 0x44f881
mov eax, dword [0x79581c]
mov ecx, 0
cmp eax, ecx
je 0x44f881
mov eax, dword [ebp + 0xc]
cmp eax, ecx
jne 0x44f867
mov eax, dword [ebp - 0x10]
cmp eax, ecx
je 0x44f881
mov eax, dword [ebp + 8]
mov ecx, 0x18
add eax, ecx
lea ecx, [0x795820]
push eax
push ecx
call sub.cvirte.dll_strcpy
add esp, 8
mov eax, dword [ebp - 4]
mov ecx, 0
cmp eax, ecx
je 0x44f89d
mov eax, dword [ebp - 4]
push eax
call sub.cvirte.dll_fclose
add esp, 4
mov eax, dword [ebp - 0x2c]
mov ecx, 0
cmp eax, ecx
je 0x44f8b9
mov eax, dword [ebp - 0x2c]
push eax
call sub.cvirte.dll_fclose
add esp, 4
mov al, byte [ebp - 0x134]
movsx eax, al
mov ecx, 0
cmp eax, ecx
je 0x44f8de
lea eax, [ebp - 0x134]
push eax
call sub.cvirte.dll_remove
add esp, 4
mov eax, dword [ebp - 0x30]
mov ecx, 0
cmp eax, ecx
je 0x44f8fa
mov eax, dword [ebp - 0x30]
push eax
call sub.cvirte.dll_free
add esp, 4
mov eax, dword [ebp - 0x138]
mov ecx, 0
cmp eax, ecx
je 0x44f919
mov eax, dword [ebp - 0x138]
push eax
call sub.cvirte.dll_DiscardBitmap
mov eax, dword [ebp - 0x24]
mov ecx, 0
cmp eax, ecx
je 0x44f935
mov eax, dword [ebp - 0x13c]
push eax
call sub.cvirte.dll_SetWaitCursor
mov eax, dword [ebp - 8]
pop esi
pop edi
pop ebx
leave
ret