Function at 0x4a6370
Capabilities:
Delete file

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x4d4e46
push eax
mov eax, 0x2298
mov dword fs:[0], esp
call fcn.004a9610
push ebx
push ebp
push esi
mov esi, dword [esp + 0x22b4]
push edi
xor edi, edi
mov ecx, dword [esi + 8]
mov dword [esi + 0x134], edi
cmp ecx, edi
je 0x4a63d9
call fcn.0049f280
test eax, eax
je 0x4a63d9
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push 1
push 0x4be
push 0x4c8
push eax
push ecx
call fcn.00471530
add esp, 0x14
cmp eax, 1
je 0x4a63d9
xor eax, eax
jmp 0x4a68d6
mov eax, dword [esi + 0x1c]
cmp eax, edi
je 0x4a63f3
push edi
push eax
mov ecx, 0x4f55f8
call fcn.0049ace0
test eax, eax
jne 0x4a63f3
mov dword [esi + 0x1c], edi
cmp dword [esi + 0x1c], edi
jne 0x4a642b
mov ecx, dword [esi + 8]
cmp ecx, edi
je 0x4a641f
push edi
call fcn.0049dc40
push eax
mov ecx, 0x4f55f8
call fcn.0049ace0
test eax, eax
je 0x4a641f
mov ecx, dword [esi + 8]
call fcn.0049dc40
mov dword [esi + 0x1c], eax
cmp dword [esi + 0x1c], edi
jne 0x4a642b
mov dword [esi + 0x1c], 0x47504a
mov eax, dword [esi + 0x1c]
lea edx, [esp + 0xbc]
push edx
push eax
mov ecx, 0x4f55f8
call fcn.0049b0d0
test eax, eax
je 0x4a645a
lea eax, [esi + 0x2c]
lea ecx, [esp + 0xbc]
push eax
push ecx
push eax
call fcn.004711b0
add esp, 0xc
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi]
lea eax, [esp + 0x2a8]
push edx
push eax
push ecx
mov ecx, 0x4f55f8
call fcn.0049ae10
lea edx, [esp + 0x154]
mov ebp, eax
mov eax, dword [esi]
push 0x154
push edx
push 0x4be
push eax
inc ebp
call dword [sym.imp.USER32.dll_LoadStringA]
mov edx, dword [esi]
mov ecx, 0x13
xor eax, eax
lea edi, [esp + 0x40]
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 4]
lea eax, [esp + 0x2a8]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x48], edx
lea eax, [esp + 0x40]
lea ebx, [esi + 0x2c]
lea edx, [esp + 0x154]
push eax
mov dword [esp + 0x44], 0x4c
mov dword [esp + 0x60], ebx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x64], 0x104
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], 0x8006e
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x80], 0x4f55a8
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], 0x4a68f0
mov dword [esp + 0x8c], 0x1fc
call sub.comdlg32.dll_GetSaveFileNameA
test eax, eax
je 0x4a68d6
xor edi, edi
push 0x7f02
push edi
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push edi
push 0x1f4
push ecx
push edx
lea ecx, [esp + 0x20]
call fcn.00473c00
mov eax, dword [esi + 8]
mov dword [esp + 0x22b0], edi
cmp eax, edi
push 0x154
je 0x4a67be
mov ecx, dword [esi]
lea eax, [esp + 0x158]
push eax
push 0x4bf
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
lea edx, [esp + 0x154]
push 0x4edc18
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [esi + 8]
mov ecx, dword [eax]
cmp ecx, edi
je 0x4a65a1
mov eax, dword [ecx]
push edi
call dword [eax + 0x10]
mov edi, eax
lea ecx, [esp + 0x154]
push 0x104
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea edx, [esp + eax + 0x158]
push edx
push edi
call sub.comdlg32.dll_GetFileTitleA
lea eax, [esp + 0x154]
lea ecx, [esp + 0x10]
push eax
call fcn.00473ec0
mov ecx, dword [esi + 8]
push 0
mov eax, dword [ecx]
lea ecx, [esp + 0xe0]
push eax
call fcn.0049ca30
lea ecx, [esp + 0x8c]
mov byte [esp + 0x22b0], 1
call fcn.0049c390
lea eax, [esp + 0x8c]
lea edx, [esp + 0x10]
push eax
lea ecx, [esp + 0xe0]
mov dword [esp + 0xb8], 0x4740a0
mov dword [esp + 0xbc], edx
mov dword [esp + 0x98], 0x18
call fcn.0049ce00
push 0xffffffffffffffff
lea ecx, [esp + 0xe0]
call fcn.0049ddf0
push 0xffffffffffffffff
lea ecx, [esp + 0xe0]
call fcn.0049de70
push 0xffffffffffffffff
lea ecx, [esp + 0xe0]
call fcn.0049e260
mov edi, eax
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4a6692
test edi, edi
je 0x4a6696
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov ebp, dword [eax + 0xc]
mov eax, dword [eax + 8]
sub ebp, ecx
sub eax, edx
push ebp
push eax
push ecx
push edx
push edi
call fcn.00470fc0
mov ebp, eax
add esp, 0x14
test ebp, ebp
je 0x4a6692
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edi, ebp
test edi, edi
jne 0x4a66e7
lea ecx, [esp + 0x10]
call fcn.00473fa0
mov ecx, dword [esi]
push 0
push 0x4b5
push 0x4b6
push 0
push ecx
call fcn.00471530
add esp, 0x14
lea ecx, [esp + 0xdc]
mov byte [esp + 0x22b0], 0
call fcn.0049cb20
lea ecx, [esp + 0x10]
mov dword [esp + 0x22b0], 0xffffffff
call fcn.00473c60
xor eax, eax
jmp 0x4a68d6
mov eax, dword [esi]
lea edx, [esp + 0x154]
push 0x154
push edx
push 0x4c0
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
lea ecx, [esp + 0x154]
push 0x4edc18
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea edx, [esp + 0x154]
push 0x104
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [esp + eax + 0x158]
push eax
push ebx
call sub.comdlg32.dll_GetFileTitleA
push 1
push 0
lea ecx, [esp + 0x18]
call fcn.00474000
lea ecx, [esp + 0x154]
push ecx
lea ecx, [esp + 0x14]
call fcn.00473ec0
mov eax, dword [esi + 0x134]
test eax, eax
jne 0x4a677d
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x24]
push DrawStatusTextA
push edx
push eax
push ecx
call fcn.004a6150
add esp, 0x10
mov dword [esi + 0x134], eax
mov eax, dword [esi + 0x134]
mov ecx, dword [esi + 0x1c]
lea edx, [esp + 0x10]
push edx
push 0x4740a0
push ebx
push eax
push ecx
push edi
call fcn.004a5e10
add esp, 0x18
mov ebp, eax
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
lea ecx, [esp + 0xdc]
mov byte [esp + 0x22b0], 0
call fcn.0049cb20
jmp 0x4a6870
mov eax, dword [esi]
lea edx, [esp + 0x158]
push edx
push 0x4c0
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
lea ecx, [esp + 0x154]
push 0x4edc18
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea edx, [esp + 0x154]
push 0x104
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [esp + eax + 0x158]
push eax
push ebx
call sub.comdlg32.dll_GetFileTitleA
push 1
push edi
lea ecx, [esp + 0x18]
call fcn.00474000
lea ecx, [esp + 0x154]
push ecx
lea ecx, [esp + 0x14]
call fcn.00473ec0
cmp dword [esi + 0x134], edi
jne 0x4a684c
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x24]
push DrawStatusTextA
push edx
push eax
push ecx
call fcn.004a6150
add esp, 0x10
mov dword [esi + 0x134], eax
mov eax, dword [esi + 0x134]
mov ecx, dword [esi + 0x1c]
lea edx, [esp + 0x10]
push edx
mov edx, dword [esi + 0xc]
push 0x4740a0
push ebx
push eax
push ecx
push edx
call fcn.004a5f30
add esp, 0x18
mov ebp, eax
lea ecx, [esp + 0x10]
call fcn.00473fa0
test ebp, ebp
je 0x4a68bd
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4a68a5
mov eax, dword [esi]
push 0
push 0x4b5
push 0x4b3
push 0
push eax
call fcn.00471530
add esp, 0x14
lea ecx, [esp + 0x10]
mov dword [esp + 0x22b0], 0xffffffff
call fcn.00473c60
xor eax, eax
jmp 0x4a68d6
lea ecx, [esp + 0x10]
mov dword [esp + 0x22b0], 0xffffffff
call fcn.00473c60
mov eax, 1
mov ecx, dword [esp + 0x22a8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x22a4
ret