Function at 0x425080
Capabilities:
Check if file exists
Delete file
Get file attributes
Move file

Disassembly:
sub esp, 0x74c
push ebx
push ebp
mov ebp, ecx
push esi
lea eax, [esp + 0x38]
push edi
mov ecx, dword [ebp + 0x14]
push eax
push 0
push ecx
call fcn.00442b60
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
lea edx, [esp + 0xb0]
push edx
push eax
push ecx
call fcn.00443540
mov eax, dword [ebp + 8]
add esp, 0x18
lea edx, [esp + 0xa4]
push edx
push 0x19d
push eax
call dword [sym.imp.user32.dll_SetDlgItemTextA]
mov ecx, dword [ebp + 8]
push 0x194
push ecx
call dword [sym.imp.user32.dll_GetDlgItem]
mov edi, dword [sym.imp.user32.dll_SendMessageA]
push 0
mov esi, eax
push 0
push 0x110a
push esi
call edi
mov ebx, eax
push ebx
push esi
call fcn.004458e0
mov edx, dword [ebp + 0x14]
add esp, 8
add edx, 0x106
mov dword [esp + 0x10], eax
push eax
push 0
push 0
push 0x10
push 0
push edx
call dword [sym.imp.ole32.dll_StgOpenStorage]
test eax, eax
jge 0x42513e
push 0x30
push eax
mov eax, dword [ebp]
push 0x22d
push eax
call fcn.00443960
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74c
ret
mov ecx, dword [ebp + 0x14]
lea edx, [esp + 0x248]
push ecx
push edx
call dword [sym.imp.kernel32.dll_lstrcpy]
lea eax, [esp + 0x248]
push 0x4ee9b4
push eax
call dword [sym.imp.kernel32.dll_lstrcat]
lea ecx, [esp + 0x248]
push ecx
call dword [sym.imp.kernel32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x4251ad
lea edx, [esp + 0x248]
push edx
call dword [sym.imp.kernel32.dll_DeleteFileA]
test eax, eax
jne 0x4251ad
mov eax, dword [ebp + 4]
mov ecx, dword [ebp]
push 0x22e
push eax
push ecx
call fcn.00443860
add esp, 0xc
mov eax, 0x80004005
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74c
ret
lea edx, [esp + 0x554]
push 0x104
push edx
lea eax, [esp + 0x250]
push 0xffffffffffffffff
push eax
push 0
push 0
call dword [sym.imp.kernel32.dll_MultiByteToWideChar]
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x554]
add ecx, 4
push ecx
push 0
push 0x12
push edx
call dword [sym.imp.ole32.dll_StgCreateDocfile]
xor ecx, ecx
mov dword [esp + 0x18], eax
cmp eax, ecx
jge 0x425215
push 0x30
push eax
mov eax, dword [ebp]
push 0x22f
push eax
call fcn.00443960
mov eax, dword [esp + 0x28]
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74c
ret
push 0x3e80000
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ecx
push ecx
mov ecx, dword [ebp + 8]
push 0x401
push 0x19a
push ecx
mov dword [esp + 0x3c], 0xfffffff6
call dword [sym.imp.user32.dll_SendDlgItemMessageA]
mov edx, dword [ebp + 8]
push 0x3e80000
push 0
push 0x401
push 0x19c
push edx
call dword [sym.imp.user32.dll_SendDlgItemMessageA]
mov eax, dword [ebp + 8]
push 0x4fbe40
push 0x19b
push eax
call dword [sym.imp.user32.dll_SetDlgItemTextA]
mov edx, dword [ebp]
lea ecx, [esp + 0xa4]
push 0x50
push ecx
push 0xc2
push edx
call dword [sym.imp.user32.dll_LoadStringA]
mov ecx, dword [ebp + 8]
lea eax, [esp + 0xa4]
push eax
push 0xf2
push ecx
call dword [sym.imp.user32.dll_SetDlgItemTextA]
test ebx, ebx
je 0x425494
mov eax, dword [ebp + 0x1c]
test eax, eax
jne 0x4254ce
push ebx
push esi
call fcn.004458e0
mov edx, dword [eax + 0x5c]
add esp, 8
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
push edx
push 0x19b
push eax
call dword [sym.imp.user32.dll_SetDlgItemTextA]
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.user32.dll_UpdateWindow]
mov eax, dword [esp + 0x14]
cmp dword [eax], 0
je 0x425350
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x425350
lea edx, [esp + 0x54]
push edx
push 0x4ee9a0
call fcn.00421ed0
mov eax, dword [esp + 0x1c]
add esp, 8
lea edx, [esp + 0x54]
mov eax, dword [eax]
push 1
push edx
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax]
mov edx, dword [edx + 4]
push edx
lea edx, [esp + 0x60]
push edx
push eax
call dword [ecx + 0x20]
lea eax, [esp + 0x54]
push eax
push 0x4ee9a8
call fcn.00421ed0
mov ecx, dword [esp + 0x1c]
add esp, 8
mov eax, dword [ecx]
lea ecx, [esp + 0x54]
push 1
push ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax]
mov ecx, dword [ecx + 4]
push ecx
lea ecx, [esp + 0x60]
push ecx
push eax
call dword [edx + 0x20]
push ebx
push 4
push 0x110a
push esi
call edi
test eax, eax
mov dword [esp + 0x14], eax
jne 0x4253dd
push ebx
push esi
call fcn.004458e0
mov ecx, dword [eax]
add esp, 8
test ecx, ecx
mov dword [esp + 0x14], eax
je 0x425387
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
mov eax, dword [esp + 0x14]
mov dword [eax], 0
mov eax, dword [eax + 4]
test eax, eax
je 0x42539f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edx, dword [esp + 0x14]
mov dword [edx + 4], 0
push ebx
push 1
push 0x110a
push esi
call edi
test eax, eax
mov dword [esp + 0x14], eax
jne 0x4253dd
push ebx
push 3
push 0x110a
push esi
call edi
mov ebx, eax
test ebx, ebx
je 0x425494
push 0
push 0
push 0x110a
push esi
call edi
cmp ebx, eax
je 0x425530
jmp 0x425363
push 0
push 0
push 0x110a
push esi
call edi
mov ecx, dword [esp + 0x14]
cmp ecx, eax
je 0x425530
push ecx
push 3
push 0x110a
push esi
mov ebx, ecx
call edi
push eax
push esi
call fcn.004458e0
mov dword [esp + 0x24], eax
mov eax, ebx
push eax
push esi
call fcn.004458e0
mov ecx, dword [esp + 0x2c]
add esp, 0x10
mov dword [esp + 0x20], eax
add eax, 8
push dword [esp + 0x20]
mov ecx, dword [ecx]
mov dword [esp + 0x28], eax
mov edx, dword [ecx]
push 0
push 0
push 0x10
push 0
push eax
push ecx
call dword [edx + 0x18]
test eax, eax
mov dword [esp + 0x18], eax
jl 0x42546d
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
add edx, 4
mov eax, dword [eax + 4]
push edx
mov edx, dword [esp + 0x28]
push 0
mov ecx, dword [eax]
push 0
push 0x12
push edx
push eax
call dword [ecx + 0x14]
test eax, eax
mov dword [esp + 0x18], eax
jge 0x425488
push 0x30
push eax
mov eax, dword [ebp]
push 0x230
push eax
call fcn.00443960
add esp, 0x10
mov dword [ebp + 0x1c], 1
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4252a6
mov ecx, dword [ebp + 0x14]
push ecx
call dword [sym.imp.kernel32.dll_DeleteFileA]
test eax, eax
jne 0x425aed
mov edx, dword [esp + 0x18]
mov eax, dword [ebp]
push 0x30
push edx
push 0x22e
push eax
call fcn.00443960
add esp, 0x10
mov eax, 0x80004005
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74c
ret
test ebx, ebx
je 0x4259fe
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
test eax, eax
je 0x4254f0
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x10]
mov dword [eax], 0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
test eax, eax
je 0x42550c
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x10]
mov dword [eax + 4], 0
push ebx
push 3
push 0x110a
push esi
call edi
mov ebx, eax
push ebx
push esi
call fcn.004458e0
add esp, 8
mov dword [esp + 0x10], eax
test ebx, ebx
jne 0x4254d6
jmp 0x4259fe
test ebx, ebx
je 0x425494
push ebx
push esi
call fcn.004458e0
add esp, 8
mov dword [esp + 0x10], eax
push ebx
push 3
push 0x110a
push esi
call edi
push eax
push 2
push 0x1102
push esi
call edi
push ebx
push 9
push 0x110b
push esi
call edi
push ebx
push 0
push 0x1114
push esi
call edi
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ecx + 0x5c]
push edx
push 0x19b
push eax
call dword [sym.imp.user32.dll_SetDlgItemTextA]
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.user32.dll_UpdateWindow]
mov edx, dword [esp + 0x10]
test byte [edx + 0x80], 0x20
jne 0x4258a1
mov al, byte [0x4fbe40]
mov ecx, pe_nt_image_headers32
mov byte [esp + 0x34c], al
xor eax, eax
lea edi, [esp + 0x34d]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, edx
mov eax, dword [edi + 0x5c]
test eax, eax
je 0x4255db
lea ecx, [esp + 0x34c]
push eax
push ecx
call dword [sym.imp.kernel32.dll_lstrcpy]
mov eax, dword [edi]
lea ecx, [esp + 0x14]
push ecx
push 0
mov edx, dword [eax]
push 0
push 0
push eax
call dword [edx + 0x2c]
test eax, eax
jl 0x42589b
xor eax, eax
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x1c]
test eax, eax
jne 0x4259a5
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x58]
mov dword [esp + 0x24], 0
mov edx, dword [eax]
push ecx
push 1
push eax
call dword [edx + 0xc]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x425891
cmp dword [esp + 0x58], 2
jne 0x425608
mov dl, byte [0x4fbe40]
mov ecx, pe_nt_image_headers32
xor eax, eax
lea edi, [esp + 0x451]
mov byte [esp + 0x450], dl
mov byte [esp + 0x144], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, pe_nt_image_headers32
xor eax, eax
lea edi, [esp + 0x145]
lea edx, [esp + 0x144]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esp + 0x54]
push edx
push eax
call fcn.00421f50
add esp, 8
test eax, eax
je 0x4256b7
lea ecx, [esp + 0x144]
lea edx, [esp + 0x34c]
push ecx
lea eax, [esp + 0x454]
push edx
push eax
call fcn.00442e30
add esp, 0xc
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x30]
add edi, ecx
push 0x4ee9a0
adc eax, edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], eax
lea eax, [esp + 0x148]
push eax
call dword [sym.imp.kernel32.dll_lstrcmpi]
test eax, eax
je 0x425608
lea ecx, [esp + 0x144]
push 0x4ee9a8
push ecx
call dword [sym.imp.kernel32.dll_lstrcmpi]
test eax, eax
je 0x425608
mov edx, dword [esp + 0x10]
test byte [edx + 0x80], 0x10
je 0x425731
lea edx, [esp + 0x450]
push edx
call dword [sym.imp.kernel32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x425608
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x60]
add edi, eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x38]
adc edi, ecx
mov ecx, dword [esp + 0x54]
push 1
push ecx
mov dword [esp + 0x40], edi
mov edi, dword [eax]
push edx
push ecx
push eax
call dword [edi + 0x20]
test eax, eax
mov dword [esp + 0x18], eax
jge 0x425786
push 0x31
push eax
mov eax, dword [ebp]
push 0x230
push eax
call fcn.00443960
add esp, 0x10
cmp eax, 2
je 0x425ac1
mov ecx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x2c]
mov edi, dword [ebp + 0x24]
fild qword [esp + 0x2c]
add ecx, eax
adc edx, edi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
fild qword [esp + 0x4c]
fdivp st(1)
fmul qword [0x4d87f0]
call fcn.004c836c
mov edi, eax
mov eax, dword [esp + 0x28]
cmp edi, eax
je 0x425841
mov eax, 0x66666667
imul edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x66666667
mov ecx, edx
imul dword [esp + 0x28]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp ecx, edx
je 0x42581c
push ecx
mov ecx, dword [ebp]
push 0xc0
lea edx, [esp + 0xfc]
push ecx
push edx
call fcn.00444d00
mov ecx, dword [ebp + 8]
add esp, 0x10
lea eax, [esp + 0xf4]
push eax
push 0xf2
push ecx
call dword [sym.imp.user32.dll_SetDlgItemTextA]
mov edx, dword [ebp + 8]
push 0
push edi
push 0x402
push 0x19a
push edx
call dword [sym.imp.user32.dll_SendDlgItemMessageA]
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.user32.dll_UpdateWindow]
mov dword [esp + 0x28], edi
mov ecx, dword [esp + 0x10]
fild qword [esp + 0x34]
fild qword [ecx + 0x68]
fdivp st(1)
fmul qword [0x4d87f0]
call fcn.004c836c
mov edi, eax
mov eax, dword [esp + 0x1c]
cmp edi, eax
je 0x425608
mov edx, dword [ebp + 8]
push 0
push edi
push 0x402
push 0x19c
push edx
call dword [sym.imp.user32.dll_SendDlgItemMessageA]
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.user32.dll_UpdateWindow]
mov dword [esp + 0x1c], edi
jmp 0x425608
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov edi, dword [sym.imp.user32.dll_SendMessageA]
push ebx
push 4
push 0x110a
push esi
call edi
test eax, eax
mov dword [esp + 0x10], eax
jne 0x425918
push ebx
push esi
call fcn.004458e0
mov ecx, dword [eax]
add esp, 8
test ecx, ecx
mov dword [esp + 0x10], eax
je 0x4258d8
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
mov eax, dword [esp + 0x10]
mov dword [eax], 0
mov eax, dword [eax + 4]
test eax, eax
je 0x4258f0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx + 4], 0
push ebx
push 1
push 0x110a
push esi
call edi
test eax, eax
mov dword [esp + 0x10], eax
jne 0x425914
push ebx
push 3
push 0x110a
push esi
call edi
mov ebx, eax
test ebx, ebx
jne 0x4258b4
mov eax, dword [esp + 0x10]
test eax, eax
mov ebx, eax
je 0x425494
push eax
push 3
push 0x110a
push esi
call edi
push eax
push esi
call fcn.004458e0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
push eax
push esi
call fcn.004458e0
mov ecx, dword [esp + 0x2c]
add esp, 0x10
mov dword [esp + 0x10], eax
add eax, 8
push dword [esp + 0x10]
mov ecx, dword [ecx]
mov dword [esp + 0x28], eax
mov edx, dword [ecx]
push 0
push 0
push 0x10
push 0
push eax
push ecx
call dword [edx + 0x18]
test eax, eax
jl 0x425ad4
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
add edx, 4
mov eax, dword [eax + 4]
push edx
mov edx, dword [esp + 0x28]
push 0
mov ecx, dword [eax]
push 0
push 0x12
push 0
push edx
push eax
call dword [ecx + 0x18]
test eax, eax
mov dword [esp + 0x18], eax
jl 0x425ad0
jmp 0x425538
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
test ebx, ebx
je 0x4259f8
mov edi, dword [esp + 0x10]
mov eax, dword [edi]
push eax
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [edi + 4]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push ebx
push 3
push 0x110a
push esi
mov dword [edi], 0
mov dword [edi + 4], 0
call dword [sym.imp.user32.dll_SendMessageA]
mov ebx, eax
push ebx
push esi
call fcn.004458e0
add esp, 8
mov dword [esp + 0x10], eax
test ebx, ebx
jne 0x4259b3
mov edi, dword [sym.imp.user32.dll_SendMessageA]
push 0
push 0
push 0x110a
push esi
call edi
mov ebx, eax
push ebx
push 9
push 0x110b
push esi
call edi
push ebx
push 0
push 0x1114
push esi
call edi
mov ecx, dword [ebp + 8]
mov esi, dword [sym.imp.user32.dll_SendDlgItemMessageA]
push 0
push 0
push 0x402
push 0x19c
push ecx
call esi
mov edx, dword [ebp + 8]
push 0
push 0
push 0x402
push 0x19a
push edx
call esi
mov eax, dword [ebp + 8]
push 0x4fbe40
push 0x19b
push eax
call dword [sym.imp.user32.dll_SetDlgItemTextA]
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x425ab4
push 0
mov ecx, ebp
call fcn.00423da0
mov ecx, dword [ebp + 8]
mov edi, dword [sym.imp.user32.dll_GetDlgItem]
push 1
push 1
push ecx
call edi
mov esi, dword [sym.imp.user32.dll_EnableWindow]
push eax
call esi
mov edx, dword [ebp + 8]
push 1
push 5
push edx
call edi
push eax
call esi
mov eax, dword [ebp + 8]
push 1
push 7
push eax
call edi
push eax
call esi
mov ecx, dword [ebp + 8]
push 1
push 6
push ecx
call edi
push eax
call esi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x74c
ret
mov eax, dword [esp + 0x14]
push eax
mov edx, dword [eax]
call dword [edx + 8]
jmp 0x4259f8
mov eax, dword [esp + 0x18]
push 0x30
push eax
mov eax, dword [ebp]
push 0x22d
push eax
call fcn.00443960
add esp, 0x10
jmp 0x4259fe
mov ecx, dword [ebp + 0x14]
lea edx, [esp + 0x248]
push ecx
push edx
call dword [sym.imp.kernel32.dll_MoveFileA]
test eax, eax
jne 0x425b2b
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp]
push 0x30
push eax
push 0x231
push ecx
call fcn.00443960
add esp, 0x10
mov eax, 0x80004005
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74c
ret
mov eax, dword [ebp + 0x14]
lea edx, [esp + 0x44]
push edx
push 0
push eax
call fcn.00442b60
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0xb0]
push ecx
push edx
push eax
call fcn.00443540
mov edx, dword [ebp + 8]
mov ebx, dword [sym.imp.user32.dll_SetDlgItemTextA]
add esp, 0x18
lea ecx, [esp + 0xa4]
push ecx
push 0x19e
push edx
call ebx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
lea eax, [esp + 0xa4]
sub ecx, edx
mov edx, dword [esp + 0x40]
push eax
sbb edx, dword [esp + 0x4c]
push edx
push ecx
call fcn.00443540
mov ecx, dword [ebp + 8]
add esp, 0xc
lea eax, [esp + 0xa4]
push eax
push 0x19f
push ecx
call ebx
mov edx, dword [ebp]
push 0x64
push 0xc0
lea eax, [esp + 0xac]
push edx
push eax
call fcn.00444d00
mov edx, dword [ebp + 8]
add esp, 0x10
lea ecx, [esp + 0xa4]
push ecx
push 0xf2
push edx
call ebx
mov ecx, dword [ebp]
lea eax, [esp + 0xa4]
push 0x50
push eax
push 0xc1
push ecx
call dword [sym.imp.user32.dll_LoadStringA]
mov eax, dword [ebp + 8]
lea edx, [esp + 0xa4]
push edx
push 2
push eax
call ebx
jmp 0x4259fe