Function at 0x42f5d0
Capabilities:
Delete file
Get file attributes
Move file
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xc20
push ebx
push ebp
mov ebp, dword [esp + 0xc2c]
push esi
push edi
cmp dword [ebp + 8], 2
jne 0x42f85f
push 0x7f02
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [esp + 0x10], eax
mov eax, ebp
push 0xfffffffffffffffa
mov esi, dword [eax + 4]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
mov edi, dword [eax + 0x14]
push esi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x28], edx
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov ebp, eax
mov eax, dword [str.ACDSee_32]
push 0x1f4
push eax
push esi
push ebp
call fcn.004539e0
mov ecx, dword [edi + 8]
add esp, 0x10
dec ecx
mov ebx, eax
and ecx, 0xffff
shl ecx, 0x10
push ecx
push 0
push 0x401
push 0x208
push ebx
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
lea edx, [esp + 0xc4]
push 0x50
push edx
push 0xa7
push ebp
call dword [sym.imp.USER32.dll_LoadStringA]
lea eax, [esp + 0xc4]
push eax
push 0x1fb
push ebx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov eax, dword [edi + 8]
mov ebp, dword [esp + 0x20]
xor esi, esi
test eax, eax
jle 0x42f83b
mov ecx, dword [0x4eba3c]
test ecx, ecx
jne 0x42f83b
cmp esi, eax
jge 0x42f6b5
test esi, esi
jl 0x42f6b5
mov ecx, dword [edi + 4]
mov eax, dword [ecx + esi*4]
jmp 0x42f6b7
xor eax, eax
lea edx, [esp + 0x324]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [esp + 0x325], 0x3a
jne 0x42f712
lea eax, [esp + 0x324]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 3
jne 0x42f712
cmp esi, dword [edi + 8]
jge 0x42f6f4
test esi, esi
jl 0x42f6f4
mov ecx, dword [edi + 4]
mov eax, dword [ecx + esi*4]
jmp 0x42f6f6
xor eax, eax
movsx edx, byte [eax]
push edx
lea eax, [esp + 0x328]
push str.__c_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x42f765
cmp byte [esp + 0x324], 0x5c
jne 0x42f74a
cmp byte [esp + 0x325], 0x5c
jne 0x42f74a
push esi
mov ecx, edi
call fcn.0042cac0
add eax, 2
lea ecx, [esp + 0x324]
push eax
push str.__s_
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x42f765
lea edx, [esp + 0x324]
push 0x104
push edx
push esi
mov ecx, edi
call fcn.0042cac0
push eax
call sub.comdlg32.dll_GetFileTitleA
push esi
mov ecx, edi
call fcn.0042cac0
push eax
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x220]
push eax
push ecx
call fcn.0044a2d0
mov eax, dword [esp + 0x68]
lea edx, [esp + 0x330]
push edx
lea ecx, [esp + 0x124]
push eax
push ecx
call fcn.0044a2d0
lea edx, [esp + 0x12c]
lea eax, [esp + 0x12c]
push edx
push 0x4e0c3c
push eax
call fcn.0044a320
lea ecx, [esp + 0x138]
push 0
push ecx
call fcn.004becfa
add esp, 0x2c
test eax, eax
jne 0x42f7e9
mov dl, byte [0x4eb7d0]
lea eax, [esp + 0x114]
push edx
lea ecx, [esp + 0x118]
push eax
push ecx
call fcn.0044c210
add esp, 0xc
lea edx, [esp + 0x114]
push 0
lea eax, [esp + 0x220]
push edx
push eax
call fcn.00453720
mov ebp, eax
mov eax, esi
cdq
mov ecx, 0xa
add esp, 0xc
idiv ecx
test edx, edx
jne 0x42f82f
push edx
push esi
push 0x402
push 0x208
push ebx
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push ebx
call fcn.00453a20
add esp, 4
mov eax, dword [edi + 8]
inc esi
cmp esi, eax
jl 0x42f697
push ebx
call dword [sym.imp.USER32.dll_DestroyWindow]
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.USER32.dll_SetCursor]
xor eax, eax
pop edi
test ebp, ebp
pop esi
pop ebp
sete al
pop ebx
add esp, 0xc20
ret
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
xor esi, esi
mov dword [esp + 0x18], ebx
cmp eax, esi
je 0x4306de
cmp byte [eax], 0
je 0x4306de
mov edi, dword [ebp + 0x18]
push 0x1388
lea ecx, [esp + 0x80]
mov dword [esp + 0x24], edi
mov dword [esp + 0x14], esi
call fcn.00422a80
cmp edi, esi
mov dword [esp + 0x7c], 0x4cc7c0
jne 0x42f946
mov eax, dword [ebx + 8]
shl eax, 2
push eax
call fcn.004be967
mov ecx, dword [str.descript.ion]
mov edx, dword [ebp + 0xc]
mov edi, eax
push ecx
lea eax, [esp + 0xa28]
push edx
push eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x30], edi
call fcn.0044a2d0
mov ecx, dword [0x4eb330]
add esp, 0x10
lea edx, [esp + 0xa20]
push ecx
push edx
lea ecx, [esp + 0x84]
call fcn.00423340
cmp dword [esp + 0x88], esi
je 0x42f930
mov eax, dword [ebx + 8]
test eax, eax
jle 0x42f946
cmp esi, eax
jge 0x42f914
test esi, esi
jl 0x42f914
mov eax, dword [ebx + 4]
mov eax, dword [eax + esi*4]
jmp 0x42f916
xor eax, eax
push eax
lea ecx, [esp + 0x80]
call fcn.00423a60
mov dword [edi + esi*4], eax
mov eax, dword [ebx + 8]
inc esi
cmp esi, eax
jl 0x42f908
jmp 0x42f946
mov ecx, dword [ebx + 8]
xor eax, eax
shl ecx, 2
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebp + 4]
xor esi, esi
push esi
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov dword [esp + 0x488], ecx
lea ecx, [esp + 0x48c]
push eax
push ecx
mov dword [esp + 0x484], esi
mov dword [esp + 0x488], edx
call edi
mov edx, dword [ebp + 0x10]
lea eax, [esp + 0x590]
push edx
push eax
call edi
mov edx, dword [ebp + 4]
mov eax, dword [ebp]
lea ecx, [esp + 0x47c]
push ecx
push 0x42ccc0
push edx
push 0x3e9
push eax
call dword [sym.imp.USER32.dll_CreateDialogParamA]
mov edi, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push 0x640000
push esi
mov ebx, eax
push 0x401
push 0x151
push ebx
mov dword [esp + 0xac], ebx
call edi
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 8]
and edx, 0xffff
shl edx, 0x10
push edx
push esi
push 0x401
push 0x150
push ebx
call edi
push esi
push 0x151
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x4e20
mov dword [esp + 0x64], 0x4cc7c4
mov dword [esp + 0x6c], 0x1388
call fcn.004be967
mov ecx, dword [esp + 0x6c]
mov edi, eax
xor eax, eax
mov dword [esp + 0x68], edi
rep stosd dword es:[edi], eax
mov eax, dword [str.descript.ion]
mov ecx, dword [ebp + 0x10]
push eax
lea edx, [esp + 0x920]
push ecx
push edx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], esi
mov dword [esp + 0x70], 0x4cc7c0
call fcn.0044a2d0
mov eax, dword [0x4eb4bc]
add esp, 0x10
mov dword [esp + 0x5c], eax
lea ecx, [esp + 0x8c8]
push 0x50
push ecx
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x488]
xor edx, edx
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
cmp ecx, 1
setne dl
add edx, 0x70
push edx
push eax
call edi
mov edx, dword [esp + 0x480]
lea ecx, [esp + 0x878]
push 0x50
push ecx
push 0x72
push edx
call edi
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], esi
mov eax, dword [eax + 8]
cmp eax, esi
jle 0x4304b6
mov ecx, dword [esp + 0x47c]
test ecx, ecx
jne 0x4304b6
mov ecx, dword [esp + 0x1c]
cmp ecx, eax
jge 0x42faea
test ecx, ecx
jl 0x42faea
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 4]
mov esi, dword [edx + ecx*4]
jmp 0x42faec
xor esi, esi
cmp ecx, eax
jge 0x42fb00
test ecx, ecx
jl 0x42fb00
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 4]
mov edi, dword [edx + ecx*4]
jmp 0x42fb02
xor edi, edi
cmp eax, 1
jne 0x42fb15
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x42fb15
cmp byte [eax], 0
je 0x42fb15
mov edi, eax
lea eax, [esp + 0x324]
push 0x105
push eax
push esi
call sub.comdlg32.dll_GetFileTitleA
lea ecx, [esp + 0x324]
lea edx, [esp + 0x8c8]
push ecx
lea eax, [esp + 0x750]
push edx
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [esp + 0x74c]
push ecx
push 0x67
push ebx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x878]
mov eax, dword [edx + 8]
mov edx, dword [esp + 0x1c]
sub eax, edx
lea edx, [esp + 0x74c]
push eax
push ecx
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [esp + 0x74c]
push eax
push 0xf2
push ebx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
push ebx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ecx, dword [esp + 0x1c]
push 0
push ecx
push 0x402
push 0x150
push ebx
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov edx, dword [ebp + 0xc]
push esi
lea eax, [esp + 0x118]
push edx
push eax
call fcn.0044a2d0
mov ecx, dword [ebp + 0x10]
push edi
lea edx, [esp + 0x22c]
push ecx
push edx
call fcn.0044a2d0
mov eax, dword [esp + 0x494]
add esp, 0x18
test eax, eax
jne 0x430497
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
push 1
push 0
push 0
lea eax, [esp + 0xa8]
push ebx
push eax
call esi
test eax, eax
je 0x42fc4d
mov edi, dword [sym.imp.USER32.dll_IsDialogMessageA]
mov ebp, dword [sym.imp.USER32.dll_TranslateMessage]
lea ecx, [esp + 0x9c]
push ecx
push ebx
call edi
test eax, eax
jne 0x42fc38
lea edx, [esp + 0x9c]
push edx
call ebp
lea eax, [esp + 0x9c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
lea ecx, [esp + 0xa8]
push ebx
push ecx
call esi
test eax, eax
jne 0x42fc11
lea edx, [esp + 0x21c]
lea eax, [esp + 0x114]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x42fd43
mov edi, dword [esp + 0xc34]
mov eax, dword [edi + 0x20]
test eax, eax
jne 0x42fd43
mov edx, dword [esp + 0x480]
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
lea ecx, [esp + 0x454]
push 0x28
push ecx
push 0x73
push edx
call esi
mov ecx, dword [esp + 0x480]
lea eax, [esp + 0x42c]
push 0x28
push eax
push 0x74
push ecx
call esi
mov eax, dword [edi + 8]
test eax, eax
je 0x430497
lea edx, [esp + 0x21c]
push edx
call fcn.0044b3b0
mov esi, eax
lea eax, [esp + 0x118]
push eax
call fcn.0044b3b0
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
lea ecx, [esp + 0x45c]
push eax
push ecx
push esi
call ebp
lea edx, [esp + 0x230]
push 0
push edx
mov esi, 2
call fcn.004becfa
add esp, 0x1c
test eax, eax
jne 0x42fd43
lea eax, [esp + 0x21c]
push eax
call fcn.0044b3b0
lea ecx, [esp + 0x118]
mov edi, eax
push ecx
call fcn.0044b3b0
push eax
lea edx, [esp + 0x438]
push esi
push edx
push edi
call ebp
lea eax, [esp + 0x234]
push 0
push eax
inc esi
call fcn.004becfa
add esp, 0x20
test eax, eax
je 0x42fd03
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x42ff47
lea ecx, [esp + 0x21c]
push 0
push ecx
call fcn.004becfa
add esp, 8
test eax, eax
jne 0x42ff47
cmp dword [0x4eb4bc], 1
je 0x430497
mov al, byte [0x4eb4c0]
test al, al
je 0x42fda0
lea edx, [esp + 0x21c]
lea eax, [esp + 0x114]
push edx
push eax
call fcn.0042cdc0
add esp, 8
cmp eax, 1
je 0x4302dc
mov cl, byte [0x4eb7d0]
lea edx, [esp + 0xb28]
push ecx
lea eax, [esp + 0x220]
push edx
push eax
call fcn.0044c210
mov eax, dword [0x4eb4bc]
add esp, 0xc
cmp eax, 2
jne 0x42fde4
lea ecx, [esp + 0xb28]
lea edx, [esp + 0x21c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x42ff47
push 4
push ebx
call dword [sym.imp.USER32.dll_ShowWindow]
lea eax, [esp + 0xb28]
push eax
call fcn.0044b3b0
mov ecx, dword [esp + 0xc38]
add esp, 4
lea edx, [esp + 0x114]
mov ebp, eax
mov edi, dword [ecx]
push edx
lea ecx, [esp + 0x6f4]
call fcn.00459cd0
lea eax, [esp + 0x21c]
lea ecx, [esp + 0x694]
push eax
call fcn.00459cd0
lea ecx, [esp + 0x6f0]
call fcn.0045a9a0
test eax, eax
jne 0x42fe55
lea ecx, [esp + 0x694]
call fcn.0045a9a0
test eax, eax
mov esi, 0x3fa
je 0x42fe5a
mov esi, 0x3f6
lea ecx, [esp + 0x21c]
push ebp
lea edx, [esp + 0x118]
push ecx
push edx
push edi
lea ecx, [esp + 0xd4]
call fcn.0042dea0
lea eax, [esp + 0xc4]
and esi, 0xffff
push eax
push 0x42e530
push ebx
push esi
push edi
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov ecx, dword [esp + 0xd8]
mov esi, eax
test ecx, ecx
je 0x42fea7
mov edx, dword [ecx]
push 1
call dword [edx]
mov ecx, dword [esp + 0xdc]
test ecx, ecx
je 0x42feb8
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [esp + 0xe0]
test ecx, ecx
je 0x42feca
push 1
call fcn.00430a20
mov ecx, dword [esp + 0xe4]
test ecx, ecx
je 0x42fedc
push 1
call fcn.00430a20
mov ecx, dword [esp + 0xe8]
mov edi, dword [sym.imp.USER32.dll_DestroyIcon]
push ecx
call edi
mov edx, dword [esp + 0xec]
push edx
call edi
mov eax, dword [esp + 0xf0]
push eax
call edi
mov ecx, dword [esp + 0xf4]
push ecx
call edi
lea ecx, [esp + 0x694]
call fcn.00459f00
lea ecx, [esp + 0x6f0]
call fcn.00459f00
cmp esi, 2
je 0x430301
cmp esi, 0x109
je 0x430497
cmp esi, 0x107
jne 0x42ff47
mov dword [esp + 0x5c], 0
mov esi, dword [esp + 0xc34]
mov eax, dword [esi + 0x20]
test eax, eax
je 0x42ff8e
mov edx, dword [esi + 0x24]
lea eax, [esp + 0x47c]
push edx
push eax
push 0x151
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
mov eax, dword [esi + 8]
lea ecx, [esp + 0x228]
push ebx
lea edx, [esp + 0x124]
push ecx
push edx
push eax
call dword [esi + 0x20]
add esp, 0x1c
jmp 0x4300c9
lea ecx, [esp + 0x114]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
test al, 0x10
je 0x42ffc2
mov ecx, dword [esi + 8]
lea edx, [esp + 0x21c]
lea eax, [esp + 0x114]
push edx
push eax
push ecx
push ebx
call fcn.0042f4f0
add esp, 0x10
jmp 0x4300c9
cmp dword [esi + 8], 1
jne 0x42ffed
lea edx, [esp + 0x21c]
lea eax, [esp + 0x114]
push edx
lea ecx, [esp + 0x480]
push eax
push ecx
call fcn.0042ee60
add esp, 0xc
jmp 0x4300c9
cmp byte [esp + 0x115], 0x3a
jne 0x430089
cmp byte [esp + 0x21d], 0x3a
jne 0x430089
movsx edx, byte [esp + 0x21c]
push edx
call fcn.004bedf3
mov esi, eax
movsx eax, byte [esp + 0x118]
push eax
call fcn.004bedf3
add esp, 8
cmp eax, esi
jne 0x430089
mov edi, dword [sym.imp.KERNEL32.dll_MoveFileA]
lea ecx, [esp + 0x21c]
lea edx, [esp + 0x114]
push ecx
push edx
call edi
test eax, eax
je 0x43004e
xor eax, eax
jmp 0x4300c9
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
cmp eax, 0xb7
jne 0x4300c9
lea eax, [esp + 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [esp + 0x21c]
lea edx, [esp + 0x114]
push ecx
push edx
call edi
test eax, eax
je 0x430085
xor eax, eax
jmp 0x4300c9
call esi
jmp 0x4300c9
lea eax, [esp + 0x21c]
lea ecx, [esp + 0x114]
push eax
lea edx, [esp + 0x480]
push ecx
push edx
call fcn.0042ee60
add esp, 0xc
test eax, eax
jne 0x4300c9
lea eax, [esp + 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
je 0x4300c3
xor eax, eax
jmp 0x4300c9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x47c]
test eax, eax
jne 0x430497
mov eax, dword [esp + 0x14]
xor ebp, ebp
cmp eax, ebp
je 0x430311
cmp dword [esp + 0x6c], ebp
je 0x43021d
push 0x4e20
mov dword [esp + 0x44], 0x4cc7c4
mov dword [esp + 0x4c], 0x1388
call fcn.004be967
mov ecx, dword [esp + 0x4c]
mov edi, eax
xor eax, eax
mov dword [esp + 0x48], edi
rep stosd dword es:[edi], eax
mov ecx, dword [0x4eb330]
add esp, 4
lea edx, [esp + 0x918]
mov dword [esp + 0x4c], ebp
push ecx
push edx
lea ecx, [esp + 0x48]
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x48], 0x4cc7c0
mov dword [esp + 0x58], 1
call fcn.00423340
lea eax, [esp + 0x60]
lea ecx, [esp + 0x40]
push eax
call fcn.004238a0
mov ecx, dword [0x4eb330]
mov edx, dword [0x4eb32c]
push ecx
lea eax, [esp + 0x91c]
push edx
push eax
lea ecx, [esp + 0x4c]
call fcn.004234e0
cmp dword [esp + 0x70], ebp
je 0x4301b7
mov eax, dword [esp + 0x68]
xor edi, edi
cmp eax, ebp
jle 0x4301b7
mov ecx, dword [esp + 0x64]
mov ecx, dword [ecx + edi*4]
cmp ecx, ebp
je 0x4301ae
mov esi, dword [ecx + 4]
cmp ecx, ebp
je 0x4301a8
mov edx, dword [ecx]
push 1
call dword [edx]
cmp esi, ebp
mov ecx, esi
jne 0x43019b
mov eax, dword [esp + 0x68]
inc edi
cmp edi, eax
jl 0x430190
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x6c], ebp
cmp eax, ebp
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], ebp
mov dword [esp + 0x40], 0x4cc7c4
je 0x430210
mov eax, dword [esp + 0x48]
xor edi, edi
cmp eax, ebp
jle 0x430210
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + edi*4]
cmp ecx, ebp
je 0x430207
mov esi, dword [ecx + 4]
cmp ecx, ebp
je 0x430201
mov edx, dword [ecx]
push 1
call dword [edx]
cmp esi, ebp
mov ecx, esi
jne 0x4301f4
mov eax, dword [esp + 0x48]
inc edi
cmp edi, eax
jl 0x4301e9
mov eax, dword [esp + 0x44]
push eax
call fcn.004be975
add esp, 4
lea ecx, [esp + 0x324]
push 0x105
lea edx, [esp + 0x220]
push ecx
push edx
call sub.comdlg32.dll_GetFileTitleA
push 5
push ebx
call dword [sym.imp.USER32.dll_ShowWindow]
lea eax, [esp + 0x324]
lea ecx, [esp + 0x74c]
push eax
push str.__s_:
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
add esp, 0xc
lea edx, [esp + 0x74c]
push ebp
push edx
call esi
mov ecx, 0x12c
lea edx, [esp + 0x750]
sub ecx, eax
push ecx
push edx
call esi
mov ecx, dword [esp + 0x1c]
lea eax, [esp + eax + 0x754]
push eax
push 0x400
push ecx
push ebp
push 0x1000
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
mov edx, dword [str.ACDSee_32]
push 0x102
lea eax, [esp + 0x750]
push edx
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 3
je 0x430301
cmp eax, 5
je 0x430497
mov eax, dword [esp + 0x47c]
test eax, eax
jne 0x430497
jmp 0x42fbea
mov ecx, dword [esp + 0xc34]
mov eax, dword [ecx + 8]
test eax, eax
jne 0x430497
lea edx, [esp + 0x114]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x430497
mov dword [esp + 0x47c], 1
jmp 0x430497
mov esi, dword [esp + 0x20]
cmp esi, ebp
je 0x430395
mov edi, dword [esp + 0x1c]
cmp dword [esi + edi*4], ebp
je 0x430395
push 0x14
call fcn.004be967
add esp, 4
cmp eax, ebp
je 0x43033f
mov ecx, dword [esi + edi*4]
push ecx
mov ecx, eax
call fcn.00422f50
mov esi, eax
jmp 0x430341
xor esi, esi
cmp dword [0x4eb218], ebp
jne 0x430353
push ebp
push 0x41
mov ecx, esi
call fcn.00423040
lea edx, [esp + 0x21c]
push edx
call fcn.0044b3b0
add esp, 4
mov ecx, esi
push eax
call fcn.00423130
cmp esi, ebp
je 0x430395
mov eax, dword [esp + 0x68]
mov ecx, esi
push eax
call fcn.00423150
mov ecx, dword [esp + 0x64]
mov edx, dword [ecx + eax*4]
mov dword [esi + 4], edx
mov ecx, dword [esp + 0x64]
mov dword [ecx + eax*4], esi
mov eax, dword [esp + 0x6c]
inc eax
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0xc34]
cmp dword [edx + 8], ebp
jne 0x430497
mov eax, dword [esp + 0x10]
test eax, eax
je 0x430497
lea eax, [esp + 0x21c]
push eax
call fcn.0044b3b0
add esp, 4
lea ecx, [esp + 0x24]
push 0
push eax
call fcn.00422ed0
lea ecx, [esp + 0x24]
test ecx, ecx
je 0x430487
mov edx, dword [esp + 0x84]
lea ecx, [esp + 0x24]
push edx
call fcn.00423150
mov ecx, dword [esp + 0x80]
mov edi, dword [ecx + eax*4]
test edi, edi
je 0x430487
lea edx, [esp + 0x24]
mov ecx, edi
push edx
call fcn.00422fc0
test eax, eax
jne 0x430413
mov edi, dword [edi + 4]
test edi, edi
jne 0x4303fc
test edi, edi
je 0x430487
mov eax, dword [esp + 0x84]
mov ecx, edi
push eax
call fcn.00423150
mov ecx, dword [esp + 0x80]
mov ebx, eax
xor ebp, ebp
mov esi, dword [ecx + ebx*4]
test esi, esi
je 0x430487
push edi
mov ecx, esi
call fcn.00422fc0
test eax, eax
jne 0x43044f
mov ebp, esi
mov esi, dword [esi + 4]
test esi, esi
jne 0x430438
jmp 0x430487
test esi, esi
je 0x430487
test ebp, ebp
je 0x43045f
mov edx, dword [esi + 4]
mov dword [ebp + 4], edx
jmp 0x43046d
mov eax, dword [esp + 0x80]
mov dword [eax + ebx*4], 0
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x430480
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx]
dec dword [esp + 0x88]
lea ecx, [esp + 0x24]
call fcn.00422f90
mov ebx, dword [esp + 0x98]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0xc34]
inc ecx
mov eax, dword [eax + 8]
mov dword [esp + 0x1c], ecx
cmp ecx, eax
jl 0x42fac3
mov ecx, dword [ebp + 4]
push 1
push ecx
call dword [sym.imp.USER32.dll_EnableWindow]
mov edx, dword [ebp + 4]
push edx
call dword [sym.imp.USER32.dll_SetFocus]
push ebx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4304de
push ebx
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [esp + 0x6c]
xor esi, esi
cmp eax, esi
je 0x4305c3
mov ebx, 0x4cc7c4
push 0x4e20
mov dword [esp + 0x44], ebx
mov dword [esp + 0x4c], 0x1388
call fcn.004be967
mov ecx, dword [esp + 0x4c]
mov edi, eax
xor eax, eax
mov dword [esp + 0x48], edi
add esp, 4
rep stosd dword es:[edi], eax
mov eax, dword [0x4eb330]
lea ecx, [esp + 0x918]
push eax
push ecx
lea ecx, [esp + 0x48]
mov dword [esp + 0x54], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x48], 0x4cc7c0
mov dword [esp + 0x58], 1
call fcn.00423340
lea edx, [esp + 0x60]
lea ecx, [esp + 0x40]
push edx
call fcn.004238a0
mov eax, dword [0x4eb330]
mov ecx, dword [0x4eb32c]
push eax
lea edx, [esp + 0x91c]
push ecx
push edx
lea ecx, [esp + 0x4c]
call fcn.004234e0
mov eax, dword [esp + 0x50]
mov dword [esp + 0x40], ebx
cmp eax, esi
je 0x4305b4
mov eax, dword [esp + 0x48]
xor edi, edi
cmp eax, esi
jle 0x4305b4
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x4305ab
mov esi, dword [ecx + 4]
test ecx, ecx
je 0x4305a5
mov edx, dword [ecx]
push 1
call dword [edx]
test esi, esi
mov ecx, esi
jne 0x430598
mov eax, dword [esp + 0x48]
inc edi
cmp edi, eax
jl 0x43058d
mov eax, dword [esp + 0x44]
push eax
call fcn.004be975
add esp, 4
xor esi, esi
cmp dword [ebp + 8], esi
jne 0x43060b
cmp dword [esp + 0x10], esi
je 0x43060b
mov ecx, dword [str.descript.ion]
mov edx, dword [ebp + 0xc]
push ecx
lea eax, [esp + 0xa24]
push edx
push eax
call fcn.0044a2d0
mov ecx, dword [0x4eb330]
mov edx, dword [0x4eb32c]
add esp, 0xc
lea eax, [esp + 0xa20]
push ecx
push edx
push eax
lea ecx, [esp + 0x88]
call fcn.004234e0
mov ecx, dword [esp + 0x10]
push ecx
call fcn.004be975
mov ecx, dword [esp + 0x480]
mov eax, dword [esp + 0x74]
add esp, 4
xor ebx, ebx
cmp ecx, esi
mov dword [esp + 0x60], 0x4cc7c4
sete bl
cmp eax, esi
je 0x430667
mov eax, dword [esp + 0x68]
xor edi, edi
cmp eax, esi
jle 0x430667
mov edx, dword [esp + 0x64]
mov ecx, dword [edx + edi*4]
test ecx, ecx
je 0x43065e
mov esi, dword [ecx + 4]
test ecx, ecx
je 0x430658
mov eax, dword [ecx]
push 1
call dword [eax]
test esi, esi
mov ecx, esi
jne 0x43064b
mov eax, dword [esp + 0x68]
inc edi
cmp edi, eax
jl 0x430640
mov ecx, dword [esp + 0x64]
push ecx
call fcn.004be975
mov eax, dword [esp + 0x90]
add esp, 4
test eax, eax
mov dword [esp + 0x7c], 0x4cc7c4
je 0x4306c1
mov eax, dword [esp + 0x84]
xor edi, edi
test eax, eax
jle 0x4306c1
mov edx, dword [esp + 0x80]
mov ecx, dword [edx + edi*4]
test ecx, ecx
je 0x4306b5
mov esi, dword [ecx + 4]
test ecx, ecx
je 0x4306af
mov eax, dword [ecx]
push 1
call dword [eax]
test esi, esi
mov ecx, esi
jne 0x4306a2
mov eax, dword [esp + 0x84]
inc edi
cmp edi, eax
jl 0x430694
mov ecx, dword [esp + 0x80]
push ecx
call fcn.004be975
add esp, 4
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc20
ret
push 0x80
mov dword [esp + 0x28], 0x4cc6f4
call fcn.004be967
mov dl, byte [0x4eb858]
mov dword [esp + 0x2c], eax
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x119]
mov dword [esp + 0x3c], ecx
mov byte [esp + 0x118], dl
add esp, 4
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebx + 8]
mov dword [esp + 0x2c], esi
cmp eax, esi
mov dword [esp + 0x30], 0x1f
mov dword [esp + 0x34], 1
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], esi
jle 0x430946
mov ebp, esi
mov edi, esi
test edi, edi
jne 0x430946
cmp ebp, eax
jge 0x430762
test ebp, ebp
jl 0x430762
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 4]
mov eax, dword [eax + ebp*4]
jmp 0x430768
mov ebx, dword [esp + 0x18]
xor eax, eax
lea ecx, [esp + 0x324]
push ecx
push eax
call fcn.0044a3b0
add esp, 8
lea edx, [esp + 0x324]
lea eax, [esp + 0x114]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x43088c
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x430810
mov edx, dword [esp + 0xc34]
mov ecx, 0xa
mov esi, edx
lea edi, [esp + 0x9c]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x114]
mov dword [esp + 0xa8], ecx
mov ecx, dword [edx + 0x18]
test ecx, ecx
je 0x4307db
mov edx, ebp
sub edx, eax
lea eax, [ecx + edx*4]
mov dword [esp + 0xb4], eax
jmp 0x4307e6
mov dword [esp + 0xb4], 0
lea edx, [esp + 0x9c]
lea ecx, [esp + 0x24]
push edx
mov dword [esp + 0xb4], ecx
call fcn.0042f5d0
mov edi, eax
mov eax, dword [esp + 0x30]
add esp, 4
neg edi
sbb edi, edi
inc edi
mov dword [esp + 0x14], edi
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x430843
xor esi, esi
test eax, eax
jle 0x430843
cmp esi, eax
jge 0x43082f
test esi, esi
jl 0x43082f
mov eax, dword [esp + 0x28]
mov eax, dword [eax + esi*4]
jmp 0x430831
xor eax, eax
push eax
call fcn.004be975
mov eax, dword [esp + 0x30]
add esp, 4
inc esi
cmp esi, eax
jl 0x430822
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004be975
push 0x80
call fcn.004be967
add esp, 8
mov dword [esp + 0x28], eax
lea edx, [esp + 0x324]
lea eax, [esp + 0x114]
push edx
push eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0x1f
mov dword [esp + 0x40], 0x40
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp ebp, dword [ebx + 8]
jge 0x43089d
test ebp, ebp
jl 0x43089d
mov ecx, dword [ebx + 4]
mov eax, dword [ecx + ebp*4]
jmp 0x43089f
xor eax, eax
push eax
call fcn.0044b3b0
push eax
call fcn.0044a200
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x430932
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
lea edx, [eax + 1]
cmp ecx, edx
jne 0x43091e
mov ecx, dword [esp + 0x38]
add eax, ecx
lea edx, [eax*4 + 4]
push edx
call fcn.004be967
mov ebp, eax
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x2c]
mov edi, ebp
lea ecx, [eax*4 + 4]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x2c]
push eax
call fcn.004be975
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x1c]
add esp, 8
add eax, ecx
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov dword [edx + eax*4], ebx
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x18]
inc ebp
mov dword [esp + 0x10], ebp
mov eax, dword [ecx + 8]
cmp ebp, eax
jl 0x430746
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x4309b9
mov eax, dword [esp + 0xc34]
mov ecx, 0xa
mov esi, eax
lea edi, [esp + 0x9c]
mov eax, dword [eax + 0x18]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x114]
test eax, eax
mov dword [esp + 0xa8], ecx
je 0x43098c
mov ecx, dword [esp + 0x10]
sub ecx, edx
lea edx, [eax + ecx*4]
mov dword [esp + 0xb4], edx
jmp 0x430997
mov dword [esp + 0xb4], 0
lea ecx, [esp + 0x9c]
lea eax, [esp + 0x24]
push ecx
mov dword [esp + 0xb4], eax
call fcn.0042f5d0
add esp, 4
neg eax
sbb eax, eax
inc eax
jmp 0x4309bd
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x24], 0x4cc6f4
test eax, eax
mov eax, dword [esp + 0x34]
sete dl
test eax, eax
mov edi, edx
je 0x430a05
mov eax, dword [esp + 0x2c]
xor esi, esi
test eax, eax
jle 0x430a05
cmp esi, eax
jge 0x4309f1
test esi, esi
jl 0x4309f1
mov eax, dword [esp + 0x28]
mov eax, dword [eax + esi*4]
jmp 0x4309f3
xor eax, eax
push eax
call fcn.004be975
mov eax, dword [esp + 0x30]
add esp, 4
inc esi
cmp esi, eax
jl 0x4309e4
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004be975
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc20
ret