Function at 0x4563e0
Capabilities:
Delete file

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4cb381
push eax
mov dword fs:[0], esp
sub esp, 0x248
lea eax, [esp + 0xf4]
push ebx
mov ebx, dword [esp + 0x25c]
push ebp
push esi
mov ecx, dword [ebx]
push edi
push 0x154
push eax
push 0x450
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
mov ecx, dword [ebx + 8]
xor esi, esi
call fcn.0045a980
cmp dword [0x4e24ac], eax
je 0x45647a
mov edi, 0x4e24ac
cmp edi, 0x4e24c0
jge 0x456450
mov ecx, dword [ebx + 8]
inc esi
add edi, 4
call fcn.0045a980
cmp dword [edi], eax
jne 0x456438
cmp esi, 5
jne 0x45647a
mov ecx, dword [ebx + 0x30]
mov eax, dword [0x4e24ac]
xor esi, esi
cmp eax, ecx
je 0x45647a
mov eax, 0x4e24ac
cmp eax, 0x4e24c0
jge 0x45647a
mov edx, dword [eax + 4]
add eax, 4
inc esi
cmp edx, ecx
jne 0x456468
mov edx, dword [esi*4 + 0x4e24ac]
lea ebp, [esi*4 + 0x4e24c0]
mov dword [ebx + 0x30], edx
lea eax, [ebx + 0x50]
mov ecx, dword [ebp]
push eax
push ecx
push eax
mov dword [esp + 0x24], eax
call fcn.0044a320
mov edx, dword [ebx + 4]
mov ecx, 0x13
xor eax, eax
lea edi, [esp + 0x30]
rep stosd dword es:[edi], eax
mov eax, dword [ebx]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x34], edx
mov edx, dword [ebx + 0x4c]
add esp, 0xc
mov dword [esp + 0x50], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], ecx
mov ecx, dword [ebp]
lea edx, [esp + 0x24]
lea eax, [esp + 0x104]
inc esi
push edx
mov dword [esp + 0x28], 0x4c
mov dword [esp + 0x34], str.BMP__Windows_bitmap_
mov dword [esp + 0x48], 0x104
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 0x8006e
mov dword [esp + 0x40], esi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], 0x456a70
mov dword [esp + 0x70], 0x1fc
call sub.comdlg32.dll_GetSaveFileNameA
test eax, eax
je case.0x456864.1
mov ecx, dword [ebx + 4]
mov edx, dword [ebx]
lea eax, [esp + 0x104]
push 0x1f4
push eax
push ecx
push edx
call fcn.004539e0
add esp, 0x10
mov esi, eax
push 0x27100000
push 0
push 0x401
push 0x208
push esi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push 0x7f02
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov edi, dword [ebx + 8]
push 0xffffffffffffffff
mov ecx, edi
call fcn.0045b060
mov ebp, eax
push 0xffffffffffffffff
mov ecx, edi
mov dword [esp + 0x18], ebp
call fcn.0045ac50
push 0xffffffffffffffff
mov ecx, edi
call fcn.0045acc0
test ebp, ebp
mov dword [esp + 0x20], eax
jne 0x45676f
mov ecx, edi
call fcn.0045b1b0
test eax, eax
je 0x45676f
mov ecx, dword [ebx]
lea eax, [esp + 0x104]
push 0x154
push eax
push 0x457
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
lea edx, [esp + 0x104]
push 0x4e073c
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x104]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [esp + eax + 0x108]
push ecx
mov ecx, edi
call fcn.0045b1b0
push eax
call sub.comdlg32.dll_GetFileTitleA
lea edx, [esp + 0x104]
push edx
push 0x1fb
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov ecx, edi
call fcn.0045b1b0
push eax
lea ecx, [esp + 0x74]
call fcn.00459cd0
xor edi, edi
lea ecx, [esp + 0xcc]
mov dword [esp + 0x260], edi
call fcn.00459c90
lea eax, [esp + 0xcc]
mov ebp, 1
push eax
lea ecx, [esp + 0x74]
mov dword [esp + 0xf0], edi
mov dword [esp + 0xf4], ebp
mov dword [esp + 0xd8], 4
mov dword [esp + 0xe8], ebp
call fcn.0045a2c0
push 0xffffffffffffffff
lea ecx, [esp + 0x74]
call fcn.0045ad90
mov ecx, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov ecx, edx
mov eax, 0x14
shr ecx, 0x1f
add edx, ecx
sub eax, edx
cmp eax, ebp
jl 0x4566c3
push 0xffffffffffffffff
lea ecx, [esp + 0x74]
call fcn.0045ad90
mov ecx, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov ecx, edx
mov ebp, 0x14
shr ecx, 0x1f
add edx, ecx
sub ebp, edx
push 0xffffffffffffffff
lea ecx, [esp + 0x74]
call fcn.0045b0c0
test eax, eax
jne 0x456725
cmp dword [0x4eba3c], edi
jne 0x456725
push edi
push edi
push ebp
lea ecx, [esp + 0x7c]
call fcn.0045a6b0
test eax, eax
je 0x456725
push edi
lea ecx, [esp + 0x74]
call fcn.0045b270
push eax
push 0x402
push 0x208
push esi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
push esi
call fcn.00453a20
add esp, 4
lea ecx, [esp + 0x70]
push 0xffffffffffffffff
call fcn.0045b0c0
test eax, eax
je 0x4566d2
push 1
lea ecx, [esp + 0x74]
call fcn.0045a850
or edi, 0xffffffff
lea ecx, [esp + 0x70]
push edi
call fcn.0045ac50
push edi
lea ecx, [esp + 0x74]
call fcn.0045acc0
push edi
lea ecx, [esp + 0x74]
mov dword [esp + 0x24], eax
call fcn.0045b060
lea ecx, [esp + 0x70]
mov dword [esp + 0x14], eax
mov dword [esp + 0x260], edi
call fcn.00459f00
mov ebp, dword [esp + 0x14]
jmp 0x456772
or edi, 0xffffffff
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4567af
test ebp, ebp
je 0x4567b3
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov edi, dword [eax + 0xc]
mov eax, dword [eax + 8]
sub edi, ecx
sub eax, edx
push edi
push eax
push ecx
push edx
push ebp
call fcn.0044a240
mov edi, eax
add esp, 0x14
test edi, edi
je 0x4567ac
push ebp
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [esp + 0x14], edi
mov ebp, edi
or edi, 0xffffffff
test ebp, ebp
jne 0x4567d5
push esi
call dword [sym.imp.USER32.dll_DestroyWindow]
xor eax, eax
mov ecx, dword [esp + 0x258]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x254
ret
push 0
push 0
push 0x402
push 0x208
push esi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov edx, dword [ebx]
lea ecx, [esp + 0x104]
push 0x154
push ecx
push 0x458
push edx
call dword [sym.imp.USER32.dll_LoadStringA]
lea eax, [esp + 0x104]
push 0x4e073c
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [esp + 0x104]
push 0x104
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea edx, [esp + eax + 0x108]
mov eax, dword [esp + 0x1c]
push edx
push eax
call sub.comdlg32.dll_GetFileTitleA
lea ecx, [esp + 0x104]
push ecx
push 0x1fb
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [ebx + 0x30]
cmp eax, 5
ja case.0x456864.1
jmp dword [eax*4 + 0x456a54]
push 0x3c
call fcn.004be967
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0x260], 1
je 0x456943
mov ecx, eax
call fcn.00466720
jmp 0x456945
push 0x278
call fcn.004be967
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0x260], 2
je 0x456943
lea edx, [ebx + 0x14]
mov ecx, eax
push edx
call fcn.00466290
jmp 0x456945
push 0x48
call fcn.004be967
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0x260], 3
je 0x456943
mov ecx, eax
call fcn.00466e70
jmp 0x456945
push 0x4c
call fcn.004be967
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0x260], 4
je 0x456943
lea ecx, [ebx + 0x34]
push ecx
mov ecx, eax
call fcn.00466900
jmp 0x456945
push 0x50
call fcn.004be967
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0x260], 5
je 0x456943
lea edx, [ebx + 0x3c]
mov ecx, eax
push edx
call fcn.00465d20
jmp 0x456945
xor eax, eax
mov ebp, eax
mov eax, dword [esp + 0x14]
push eax
mov ecx, ebp
mov dword [esp + 0x264], edi
call fcn.00465940
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, ebp
call fcn.004657a0
mov ecx, ebp
call fcn.00465ac0
test eax, eax
mov dword [esp + 0x10], eax
jl 0x4569eb
mov eax, dword [esp + 0x20]
xor edi, edi
test eax, eax
jle 0x4569d7
mov eax, dword [0x4eba3c]
test eax, eax
jne 0x4569eb
push 1
mov ecx, ebp
call fcn.00465b10
test eax, eax
mov dword [esp + 0x10], eax
jl 0x4569d7
mov edx, dword [esp + 0x20]
push 0
push edx
push 0x2710
push edi
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
push 0x402
push 0x208
push esi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
push esi
call fcn.00453a20
mov eax, dword [esp + 0x24]
add esp, 4
inc edi
cmp edi, eax
jl 0x45697f
mov eax, dword [0x4eba3c]
test eax, eax
jne 0x4569eb
mov ecx, ebp
call fcn.00465b20
mov dword [esp + 0x10], eax
test ebp, ebp
je 0x4569f8
mov eax, dword [ebp]
push 1
mov ecx, ebp
call dword [eax]
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [0x4eba3c]
test eax, eax
je 0x456a23
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp case.0x456864.1
mov eax, dword [esp + 0x10]
test eax, eax
jge 0x456a49
mov eax, dword [ebx]
push 0
push 0x3ec
push 0x3ea
push 0
push eax
call fcn.0044adc0
add esp, 0x14
jmp case.0x456864.1
mov eax, 1
jmp 0x4567bc