Function at 0x440de0
Capabilities:
Delete file
Move file

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4a81b5
push eax
mov dword fs:[0], esp
sub esp, 0x3cc
xor ecx, ecx
mov eax, 0x4c0298
push ebx
push ebp
push esi
mov esi, dword [esp + 0x3f4]
push edi
mov edx, dword [esi + 0x20]
cmp dword [eax], edx
je 0x440e1f
add eax, 4
inc ecx
cmp eax, 0x4c02a4
jl 0x440e10
cmp ecx, 3
jne 0x440e26
xor ecx, ecx
mov ecx, dword [ecx*4 + 0x4c02a8]
mov edi, dword [esp + 0x3f4]
lea eax, [esp + 0xb0]
push eax
push ecx
push edi
call fcn.0043c730
add esp, 0xc
lea edx, [esp + 0xb0]
mov dword [0x4cb0dc], 0
push edi
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
mov ebx, eax
mov eax, dword [esi]
neg ebx
sbb ebx, ebx
inc ebx
cmp eax, 2
mov dword [esp + 0x18], ebx
je 0x440e7c
test ebx, ebx
je 0x440e96
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x440e96
lea eax, [esp + 0xb0]
push 0x5f
lea ecx, [esp + 0xb4]
push eax
push ecx
call fcn.0043e150
add esp, 0xc
mov eax, dword [esp + 0x3ec]
lea edx, [esp + 0x1b4]
push 0x226
push edx
push 0x44c
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [esp + 0x1b4]
push 0x104
push ecx
call esi
lea edx, [esp + eax + 0x1b8]
push edx
push edi
call sub.comdlg32.dll_GetFileTitleA
lea eax, [esp + 0x1b4]
push str.___
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [esp + 0x1b4]
push 0x104
push ecx
call esi
lea edx, [esp + eax + 0x1b8]
lea eax, [esp + 0xb4]
push edx
push eax
call sub.comdlg32.dll_GetFileTitleA
mov edi, dword [esp + 0x3fc]
lea ecx, [esp + 0x1b4]
push ecx
push 0x71
push edi
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov esi, dword [esp + 0x400]
mov ebp, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push 0
push esi
push 0x402
push 0x82
push edi
call ebp
push edi
call dword [sym.imp.USER32.dll_UpdateWindow]
lea edx, [esp + 0xb0]
push 4
push edx
call fcn.00498c50
add esp, 8
test eax, eax
jne 0x440fbe
mov ecx, dword [esp + 0x3f8]
mov eax, dword [ecx]
cmp eax, 1
je 0x441461
xor edx, edx
test eax, eax
setne dl
test ebx, ebx
mov eax, edx
je 0x440f8a
mov edx, dword [ecx + 0x1c]
test edx, edx
je 0x440f8a
xor eax, eax
test eax, eax
je 0x440fbe
mov eax, dword [esp + 0x3f0]
mov ecx, dword [esp + 0x3ec]
push 0x104
push 0x44e
push 0x44d
push eax
push ecx
call fcn.0043cea0
add esp, 0x14
cmp eax, 6
jne 0x441461
push edi
call dword [sym.imp.USER32.dll_SetFocus]
xor ebx, ebx
cmp edi, ebx
jne 0x440fde
push 0x7f02
push ebx
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov edx, dword [esp + 0x3f4]
lea ecx, [esp + 0x1c]
push edx
call fcn.00443dd0
lea ecx, [esp + 0x78]
mov dword [esp + 0x3e4], ebx
call fcn.00443d90
mov eax, 1
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], eax
mov dword [esp + 0x90], eax
lea eax, [esp + 0x78]
cmp edi, ebx
mov ebx, dword [esp + 0x404]
mov dword [esp + 0x80], 4
push eax
lea ecx, [esp + 0x20]
je 0x44111c
call fcn.00444320
push 0xffffffffffffffff
lea ecx, [esp + 0x20]
call fcn.00444db0
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, 1
jge 0x441075
mov dword [esp + 0x10], 1
jmp 0x44109e
push 0xffffffffffffffff
lea ecx, [esp + 0x20]
call fcn.00444db0
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
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x1c]
call fcn.004450c0
test eax, eax
jne 0x44110f
mov eax, dword [0x4cb0dc]
test eax, eax
jne 0x44110f
mov edx, dword [esp + 0x10]
push 0
push 0
push edx
lea ecx, [esp + 0x28]
call fcn.00444730
test eax, eax
je 0x44110f
mov eax, ebx
push 0
cdq
sub eax, edx
push 0x2710
sar eax, 1
push eax
lea ecx, [esp + 0x28]
call fcn.004451e0
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
add eax, esi
push eax
push 0x402
push 0x82
push edi
call ebp
push edi
call fcn.0043ff80
add esp, 4
lea ecx, [esp + 0x1c]
call fcn.004450c0
test eax, eax
je 0x4410ab
push 1
lea ecx, [esp + 0x20]
call fcn.004448d0
jmp 0x441121
call fcn.00444ef0
lea ecx, [esp + 0x1c]
call fcn.004450c0
test eax, eax
jne 0x441156
mov eax, dword [0x4cb0dc]
test eax, eax
jne 0x441385
mov ecx, dword [esp + 0x3ec]
push 0
push 0x3e9
push 0x3eb
push 0
push ecx
jmp 0x44137d
mov esi, dword [esp + 0x3f8]
mov eax, dword [esi + 0x20]
sub eax, 0
je 0x4411f3
sub eax, 2
je 0x4411d0
sub eax, 2
je 0x44118e
lea ecx, [esp + 0x1c]
mov dword [esp + 0x3e4], 0xffffffff
call fcn.00443ff0
xor eax, eax
jmp 0x441466
push 0x3c
call fcn.004985f0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x3e4], 3
je 0x4411bf
mov ecx, eax
call fcn.0044dd10
mov esi, eax
mov byte [esp + 0x3e4], 0
mov dword [esp + 0x14], esi
jmp 0x44122d
xor eax, eax
mov esi, eax
mov byte [esp + 0x3e4], al
mov dword [esp + 0x14], esi
jmp 0x44122d
push 0x34
call fcn.004985f0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x3e4], 1
je 0x44121d
mov ecx, eax
call fcn.0044cf70
jmp 0x44121f
push 0x260
call fcn.004985f0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x3e4], 2
je 0x44121d
add esi, 4
mov ecx, eax
push esi
call fcn.0044d860
jmp 0x44121f
xor eax, eax
mov byte [esp + 0x3e4], 0
mov dword [esp + 0x14], eax
mov esi, eax
push 0xffffffffffffffff
lea ecx, [esp + 0x20]
call fcn.00445010
push eax
mov ecx, esi
call fcn.0044ccb0
lea edx, [esp + 0xb0]
mov ecx, esi
push edx
call fcn.0044cb70
mov ecx, esi
call fcn.0044cde0
test eax, eax
mov dword [esp + 0x10], eax
jl 0x441321
test edi, edi
je 0x4412f6
push 0xffffffffffffffff
lea ecx, [esp + 0x20]
xor ebp, ebp
call fcn.00444d30
test eax, eax
jle 0x44130d
mov eax, dword [0x4cb0dc]
test eax, eax
jne 0x441321
push 1
mov ecx, esi
call fcn.0044ce00
test eax, eax
mov dword [esp + 0x10], eax
jl 0x44130d
mov eax, ebx
push 0
cdq
sub eax, edx
push 0xffffffffffffffff
mov esi, eax
lea ecx, [esp + 0x24]
sar esi, 1
call fcn.00444d30
push eax
push esi
push ebp
call dword [sym.imp.KERNEL32.dll_MulDiv]
add eax, dword [esp + 0x404]
add eax, esi
push eax
push 0x402
push 0x82
push edi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push edi
call fcn.0043ff80
add esp, 4
lea ecx, [esp + 0x1c]
inc ebp
push 0xffffffffffffffff
call fcn.00444d30
mov esi, dword [esp + 0x14]
cmp ebp, eax
jl 0x44127f
jmp 0x44130d
push 0xffffffffffffffff
lea ecx, [esp + 0x20]
call fcn.00444d30
push eax
mov ecx, esi
call fcn.0044ce00
mov dword [esp + 0x10], eax
mov eax, dword [0x4cb0dc]
test eax, eax
jne 0x441321
mov ecx, esi
call fcn.0044ce10
mov dword [esp + 0x10], eax
test esi, esi
je 0x44132d
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
mov eax, dword [0x4cb0dc]
test eax, eax
je 0x44135f
lea ecx, [esp + 0xb0]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x3e4], 0xffffffff
call fcn.00443ff0
xor eax, eax
jmp 0x441466
mov eax, dword [esp + 0x10]
push 0
test eax, eax
jge 0x4413a0
mov edx, dword [esp + 0x3f0]
push 0x3e9
push 0x3ea
push 0
push edx
call fcn.0043cea0
add esp, 0x14
lea ecx, [esp + 0x1c]
mov dword [esp + 0x3e4], 0xffffffff
call fcn.00443ff0
xor eax, eax
jmp 0x441466
mov esi, dword [esp + 0x3f8]
push esi
call fcn.0043d500
add esp, 8
test eax, eax
je 0x4413c9
push 0
push 1
push eax
lea eax, [esp + 0xbc]
push eax
call fcn.0043d770
add esp, 0x10
mov ecx, dword [esp + 0x3f8]
mov eax, dword [ecx + 0x1c]
test eax, eax
je 0x441439
mov eax, dword [esp + 0x18]
push esi
test eax, eax
je 0x441412
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
je 0x4413fb
lea edx, [esp + 0xb0]
push esi
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
jmp 0x441439
mov eax, dword [esp + 0x3f0]
mov ecx, dword [esp + 0x3ec]
push 0x3e8
push eax
push ecx
jmp 0x441431
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x441439
mov edx, dword [esp + 0x3f0]
mov eax, dword [esp + 0x3ec]
push 0x3e8
push edx
push eax
call fcn.0043cfa0
add esp, 0xc
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x3e4], 0xffffffff
call fcn.00443ff0
mov eax, 1
mov ecx, dword [esp + 0x3dc]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x3d8
ret