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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x39c
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, [ebp - 0x34]
mov ecx, 0
mov dword [eax], ecx
lea eax, [ebp - 0x40]
mov ecx, 0
mov dword [eax], ecx
lea eax, [ebp - 0x34c]
lea ecx, [0x7954a8]
push edi
push esi
push ecx
mov esi, ecx
mov edi, eax
mov ecx, 0x81
rep movsd dword es:[edi], dword [esi]
pop ecx
pop esi
pop edi
lea eax, [ebp - 0x378]
mov ecx, 0
mov dword [eax], ecx
lea eax, [ebp - 0x37c]
mov ecx, 0
mov dword [eax], ecx
lea eax, [ebp - 0x380]
mov ecx, 0
mov dword [eax], ecx
call sub.cvirte.dll_GetWaitCursorState
lea ecx, [ebp - 0x38c]
mov dword [ecx], eax
mov eax, dword [ebp + 0xc]
mov ecx, 0
cmp eax, ecx
jne 0x44d3d4
lea eax, [ebp - 0x148]
lea ecx, str.Open_Icon
lea edx, [0x7956e4]
lea ebx, str..ico
lea edi, [0x7957e8]
push eax
push 0
push 1
push 1
push 0
push 3
push ecx
push edx
push ebx
push edi
call sub.cvirte.dll_FileSelectPopup
lea ecx, [ebp - 0x44]
mov dword [ecx], eax
mov eax, dword [ebp - 0x44]
mov ecx, 1
cmp eax, ecx
je 0x44d3e7
lea eax, [ebp - 8]
mov ecx, 2
mov dword [eax], ecx
jmp 0x44dc94
lea eax, [ebp - 0x148]
mov ecx, dword [ebp + 0xc]
push ecx
push eax
call sub.cvirte.dll_strcpy
add esp, 8
mov eax, dword [ebp + 8]
mov ecx, 0x18
add eax, ecx
mov al, byte [eax]
movsx eax, al
mov ecx, 0
cmp eax, ecx
jne 0x44d412
lea eax, [ebp - 8]
mov ecx, 2
mov dword [eax], ecx
jmp 0x44dc94
push 1
call sub.cvirte.dll_SetWaitCursor
lea eax, [ebp - 0x378]
lea ecx, [ebp - 0x148]
push eax
push ecx
call sub.cvirte.dll_GetFileInfo
mov ecx, 1
cmp eax, ecx
je 0x44d44b
lea eax, [ebp - 8]
mov ecx, 0
mov dword [eax], ecx
jmp 0x44dc94
lea eax, [0x795704]
lea ecx, [ebp - 0x148]
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 0x44d485
lea eax, [ebp - 8]
mov ecx, 0
mov dword [eax], ecx
jmp 0x44dc94
lea eax, [ebp - 0x10]
mov ecx, dword [ebp - 4]
push ecx
push 1
push 4
push eax
call sub.cvirte.dll_fread
add esp, 0x10
mov eax, dword [ebp - 0x10]
mov ecx, 0x10000
cmp eax, ecx
je 0x44d4be
lea eax, [ebp - 8]
mov ecx, 0
mov dword [eax], ecx
jmp 0x44dc94
lea eax, [ebp - 0x14]
mov ecx, dword [ebp - 4]
push ecx
push 1
push 2
push eax
call sub.cvirte.dll_fread
add esp, 0x10
lea eax, [ebp - 0xc]
mov ecx, 1
mov dword [eax], ecx
jmp 0x44dc82
mov eax, dword [ebp - 0xc]
mov ecx, 4
shl eax, cl
mov ecx, 0x10
sub eax, ecx
mov ecx, 6
add eax, ecx
push 0
push eax
mov eax, dword [ebp - 4]
push eax
call sub.cvirte.dll_fseek
add esp, 0xc
lea eax, [ebp - 0x1c]
mov ecx, dword [ebp - 4]
push ecx
push 1
push 1
push eax
call sub.cvirte.dll_fread
add esp, 0x10
lea eax, [ebp - 0x18]
mov ecx, dword [ebp - 4]
push ecx
push 1
push 1
push eax
call sub.cvirte.dll_fread
add esp, 0x10
lea eax, [ebp - 0x20]
mov ecx, dword [ebp - 4]
push ecx
push 1
push 1
push eax
call sub.cvirte.dll_fread
add esp, 0x10
lea eax, [ebp - 0x24]
mov cl, byte [ebp - 0x20]
movzx ecx, cl
mov dword [eax], ecx
push 1
push 9
mov eax, dword [ebp - 4]
push eax
call sub.cvirte.dll_fseek
add esp, 0xc
lea eax, [ebp - 0x38]
mov ecx, dword [ebp - 4]
push ecx
push 1
push 4
push eax
call sub.cvirte.dll_fread
add esp, 0x10
mov eax, dword [ebp - 0x24]
mov ecx, pe_nt_image_headers32
cmp eax, ecx
je 0x44d69d
cmp eax, ecx
jg 0x44d62e
mov eax, dword [ebp - 0x24]
mov ecx, 0x20
cmp eax, ecx
je 0x44d67f
cmp eax, ecx
jg 0x44d619
mov eax, dword [ebp - 0x24]
mov ecx, 8
cmp eax, ecx
je 0x44d661
cmp eax, ecx
jg 0x44d604
mov eax, dword [ebp - 0x24]
mov ecx, 2
cmp eax, ecx
je 0x44d643
mov ecx, 4
cmp eax, ecx
je 0x44d652
jmp 0x44d6bb
mov eax, dword [ebp - 0x24]
mov ecx, 0x10
cmp eax, ecx
je 0x44d670
jmp 0x44d6bb
mov eax, dword [ebp - 0x24]
mov ecx, 0x40
cmp eax, ecx
je 0x44d68e
jmp 0x44d6bb
mov eax, dword [ebp - 0x24]
mov ecx, 0x100
cmp eax, ecx
je 0x44d6ac
jmp 0x44d6bb
lea eax, [ebp - 0x28]
mov ecx, 1
mov dword [eax], ecx
jmp 0x44d6c5
lea eax, [ebp - 0x28]
mov ecx, 2
mov dword [eax], ecx
jmp 0x44d6c5
lea eax, [ebp - 0x28]
mov ecx, 3
mov dword [eax], ecx
jmp 0x44d6c5
lea eax, [ebp - 0x28]
mov ecx, 4
mov dword [eax], ecx
jmp 0x44d6c5
lea eax, [ebp - 0x28]
mov ecx, 5
mov dword [eax], ecx
jmp 0x44d6c5
lea eax, [ebp - 0x28]
mov ecx, 6
mov dword [eax], ecx
jmp 0x44d6c5
lea eax, [ebp - 0x28]
mov ecx, 7
mov dword [eax], ecx
jmp 0x44d6c5
lea eax, [ebp - 0x28]
mov ecx, 8
mov dword [eax], ecx
jmp 0x44d6c5
lea eax, [ebp - 0x28]
mov ecx, 0
mov dword [eax], ecx
lea eax, [ebp - 0x2c]
mov cl, byte [ebp - 0x18]
movzx ecx, cl
mov dword [eax], ecx
lea eax, [ebp - 0x30]
mov cl, byte [ebp - 0x1c]
movzx ecx, cl
mov dword [eax], ecx
push 0
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.cvirte.dll_fseek
add esp, 0xc
lea eax, [ebp - 0x388]
mov ecx, dword [ebp - 4]
push ecx
push 1
push 8
push eax
call sub.cvirte.dll_fread
add esp, 0x10
lea eax, [ebp - 0x388]
push 8
push eax
call fcn.0044d28e
add esp, 8
mov ecx, 0
cmp eax, ecx
je 0x44d975
mov eax, dword [ebp - 0xc]
mov cx, word [ebp - 0x14]
movsx ecx, cx
cmp eax, ecx
jne 0x44d753
lea eax, [ebp - 0x390]
mov ecx, dword [ebp - 0x378]
mov dword [eax], ecx
jmp 0x44d79a
mov eax, dword [ebp - 0xc]
mov ecx, 4
shl eax, cl
mov ecx, 6
add eax, ecx
mov ecx, 0xc
add eax, ecx
push 0
push eax
mov eax, dword [ebp - 4]
push eax
call sub.cvirte.dll_fseek
add esp, 0xc
lea eax, [ebp - 0x390]
mov ecx, dword [ebp - 4]
push ecx
push 1
push 4
push eax
call sub.cvirte.dll_fread
add esp, 0x10
mov eax, dword [ebp - 0x390]
mov ecx, dword [ebp - 0x38]
sub eax, ecx
lea ecx, [ebp - 0x394]
mov dword [ecx], eax
mov eax, dword [ebp - 0x394]
push eax
call sub.cvirte.dll_malloc
add esp, 4
lea ecx, [ebp - 0x37c]
mov dword [ecx], eax
mov ecx, 0
cmp eax, ecx
jne 0x44d7e0
lea eax, [ebp - 8]
mov ecx, 0
mov dword [eax], ecx
jmp 0x44dc94
push 0
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.cvirte.dll_fseek
add esp, 0xc
mov eax, dword [ebp - 0x394]
mov ecx, dword [ebp - 4]
push ecx
push eax
push 1
mov eax, dword [ebp - 0x37c]
push eax
call sub.cvirte.dll_fread
add esp, 0x10
mov ecx, dword [ebp - 0x394]
cmp eax, ecx
jae 0x44d831
lea eax, [ebp - 8]
mov ecx, 0
mov dword [eax], ecx
jmp 0x44dc94
lea eax, [ebp - 0x34c]
push eax
call sub.cvirte.dll_tmpnam
add esp, 4
lea eax, str..png
lea ecx, [ebp - 0x34c]
push eax
push ecx
call sub.cvirte.dll_strcat
add esp, 8
lea eax, [0x79571c]
lea ecx, [ebp - 0x34c]
push eax
push ecx
call sub.cvirte.dll_fopen
add esp, 8
lea ecx, [ebp - 0x380]
mov dword [ecx], eax
mov eax, dword [ebp - 0x394]
mov ecx, dword [ebp - 0x380]
push ecx
push eax
push 1
mov eax, dword [ebp - 0x37c]
push eax
call sub.cvirte.dll_fwrite
add esp, 0x10
mov ecx, dword [ebp - 0x394]
cmp eax, ecx
jae 0x44d8b3
lea eax, [ebp - 8]
mov ecx, 0
mov dword [eax], ecx
jmp 0x44dc94
mov eax, dword [ebp - 0x37c]
push eax
call sub.cvirte.dll_free
add esp, 4
lea eax, [ebp - 0x37c]
mov ecx, 0
mov dword [eax], ecx
mov eax, dword [ebp - 0x380]
push eax
call sub.cvirte.dll_fclose
add esp, 4
lea eax, [ebp - 0x380]
mov ecx, 0
mov dword [eax], ecx
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x34c]
push eax
push ecx
call sub.cvirte.dll_GetBitmapFromFile
mov ecx, 0
cmp eax, ecx
jl 0x44d943
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x28]
push 0
push 0
push 0
push 0
push eax
push ecx
push edx
push 0
mov eax, dword [ebp - 0x34]
push eax
call sub.cvirte.dll_GetBitmapDataEx
mov ecx, 0
cmp eax, ecx
jge 0x44d961
lea eax, [ebp - 0x34c]
push eax
call sub.cvirte.dll_remove
add esp, 4
lea eax, [ebp - 8]
mov ecx, 0
mov dword [eax], ecx
jmp 0x44dc94
lea eax, [ebp - 0x34c]
push eax
call sub.cvirte.dll_remove
add esp, 4
jmp 0x44da3b
mov eax, dword [ebp - 0x24]
mov ecx, 0
cmp eax, ecx
je 0x44d9a1
mov al, byte [ebp - 0x1c]
movzx eax, al
cmp eax, ecx
je 0x44d9a1
mov al, byte [ebp - 0x18]
movzx eax, al
cmp eax, ecx
jne 0x44da3b
push 0
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.cvirte.dll_fseek
add esp, 0xc
lea eax, [ebp - 0x374]
mov ecx, dword [ebp - 4]
push ecx
push 1
push 0x28
push eax
call sub.cvirte.dll_fread
add esp, 0x10
lea eax, [ebp - 0x28]
mov cx, word [ebp - 0x366]
movzx ecx, cx
mov dword [eax], ecx
mov ax, word [ebp - 0x366]
movzx eax, ax
mov ecx, 8
cmp eax, ecx
jg 0x44da14
mov eax, 1
mov cx, word [ebp - 0x366]
movzx ecx, cx
shl eax, cl
lea ecx, [ebp - 0x24]
mov dword [ecx], eax
jmp 0x44da1e
lea eax, [ebp - 0x24]
mov ecx, 0xffffffff
mov dword [eax], ecx
mov eax, dword [ebp - 0x36c]
mov ecx, 1
sar eax, cl
lea ecx, [ebp - 0x2c]
mov dword [ecx], eax
lea eax, [ebp - 0x30]
mov ecx, dword [ebp - 0x370]
mov dword [eax], ecx
mov eax, dword [ebp - 0x28]
mov ecx, 0x18
cmp eax, ecx
jne 0x44da60
lea eax, [ebp - 0x390]
mov ecx, 0x20
mov dword [eax], ecx
lea eax, [0x44da6b]
jmp eax
lea eax, [ebp - 0x390]
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov eax, dword [ebp - 0x390]
push eax
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x30]
push eax
call fcn.00450ab3
add esp, 0xc
mov ecx, 0
cmp eax, ecx
je 0x44dc64
mov eax, dword [ebp - 0x34]
mov ecx, 0
cmp eax, ecx
je 0x44db44
mov eax, dword [ebp - 0x28]
mov ecx, 0x18
cmp eax, ecx
jne 0x44dac4
lea eax, [ebp - 0x394]
mov ecx, 0x20
mov dword [eax], ecx
lea eax, [0x44dacf]
jmp eax
lea eax, [ebp - 0x394]
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov eax, dword [ebp - 0x394]
push eax
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x30]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00450dc2
add esp, 0x10
lea ecx, [ebp - 0x3c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x34]
push eax
call fcn.0044b9a7
add esp, 8
mov ecx, 0
cmp eax, ecx
jge 0x44db1b
lea eax, [ebp - 8]
mov ecx, 0
mov dword [eax], ecx
jmp 0x44dc94
mov eax, dword [ebp - 0x3c]
mov ecx, 0x5c
add eax, ecx
mov ecx, 1
mov dword [eax], ecx
mov eax, dword [ebp - 0x34]
push eax
call sub.cvirte.dll_DiscardBitmap
lea eax, [ebp - 0x34]
mov ecx, 0
mov dword [eax], ecx
jmp 0x44dc73
mov eax, dword [ebp - 0x28]
mov ecx, 0x18
cmp eax, ecx
jne 0x44db69
lea eax, [ebp - 0x394]
mov ecx, 0x20
mov dword [eax], ecx
lea eax, [0x44db74]
jmp eax
lea eax, [ebp - 0x394]
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov eax, dword [ebp - 0x394]
push eax
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x30]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00450dc2
add esp, 0x10
lea ecx, [ebp - 0x3c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x28]
mov ecx, 0x18
cmp eax, ecx
jne 0x44dbb9
lea eax, [ebp - 0x398]
mov ecx, 0x20
mov dword [eax], ecx
lea eax, [0x44dbc4]
jmp eax
lea eax, [ebp - 0x398]
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov eax, dword [ebp - 0x398]
mov ecx, dword [ebp - 0x28]
cmp eax, ecx
je 0x44dc4b
mov eax, dword [ebp - 0x3c]
mov ecx, 4
add eax, ecx
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov eax, dword [ebp - 0x3c]
mov ecx, 0x18
add ecx, eax
mov dword [ebp - 0x39c], ecx
mov edx, 0xc
add edx, eax
mov edx, dword [edx]
mov ebx, 4
add eax, ebx
mov eax, dword [eax]
imul edx, eax
mov eax, 8
mov esi, eax
mov eax, edx
cdq
idiv esi
mov edx, eax
push 4
push edx
call fcn.0043b0a7
mov ecx, dword [ebp - 0x39c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x3c]
mov ecx, 0x10
add ecx, eax
mov edx, 8
add edx, eax
mov edx, dword [edx]
mov ebx, 0x18
add eax, ebx
mov eax, dword [eax]
imul edx, eax
mov dword [ecx], edx
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 4]
push eax
call fcn.0044c68d
add esp, 0xc
jmp 0x44dc73
mov eax, dword [ebp - 0x40]
mov ecx, 1
add eax, ecx
lea ecx, [ebp - 0x40]
mov dword [ecx], eax
mov eax, dword [ebp - 0xc]
mov ecx, 1
add eax, ecx
lea ecx, [ebp - 0xc]
mov dword [ecx], eax
mov eax, dword [ebp - 0xc]
mov cx, word [ebp - 0x14]
movsx ecx, cx
cmp eax, ecx
jle 0x44d4e7
mov eax, dword [ebp - 4]
mov ecx, 0
cmp eax, ecx
je 0x44dcb0
mov eax, dword [ebp - 4]
push eax
call sub.cvirte.dll_fclose
add esp, 4
mov eax, dword [ebp - 0x34]
mov ecx, 0
cmp eax, ecx
je 0x44dcc9
mov eax, dword [ebp - 0x34]
push eax
call sub.cvirte.dll_DiscardBitmap
mov eax, dword [ebp - 0x380]
mov ecx, 0
cmp eax, ecx
je 0x44dd10
mov al, byte [ebp - 0x34c]
movsx eax, al
mov ecx, 0
cmp eax, ecx
je 0x44dd01
lea eax, [ebp - 0x34c]
push eax
call sub.cvirte.dll_remove
add esp, 4
mov eax, dword [ebp - 0x380]
push eax
call sub.cvirte.dll_fclose
add esp, 4
mov eax, dword [ebp - 0x37c]
mov ecx, 0
cmp eax, ecx
je 0x44dd32
mov eax, dword [ebp - 0x37c]
push eax
call sub.cvirte.dll_free
add esp, 4
mov eax, dword [ebp - 0x38c]
push eax
call sub.cvirte.dll_SetWaitCursor
mov eax, dword [ebp - 8]
mov ecx, 1
cmp eax, ecx
jne 0x44dd77
mov eax, dword [ebp + 8]
mov ecx, 0x10
add eax, ecx
mov eax, dword [eax]
push eax
call fcn.0042b74b
mov ecx, 0
cmp eax, ecx
jne 0x44dd77
lea eax, [ebp - 8]
mov ecx, 0
mov dword [eax], ecx
mov eax, dword [ebp - 8]
mov ecx, 1
cmp eax, ecx
jne 0x44ddb9
lea eax, [ebp - 0x148]
mov ecx, dword [ebp + 8]
mov edx, 0x18
add ecx, edx
push eax
push ecx
call sub.cvirte.dll_strcpy
add esp, 8
mov eax, dword [ebp + 0x10]
mov ecx, 0
cmp eax, ecx
je 0x44ddb9
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x40]
mov dword [eax], ecx
mov eax, dword [ebp - 8]
pop esi
pop edi
pop ebx
leave
ret