Function at 0x438950
Capabilities:
Delete file
Get common file path
Move file

Disassembly:
sub esp, 0x46c
push ebx
push ebp
mov ebp, dword [esp + 0x484]
push esi
push edi
xor edi, edi
cmp dword [ebp + 8], edi
jle 0x43896f
mov eax, dword [ebp + 4]
mov eax, dword [eax]
jmp 0x438971
xor eax, eax
lea ecx, [esp + 0x168]
push ecx
push eax
call fcn.004387a0
mov ecx, dword [esp + 0x488]
add esp, 8
lea edx, [esp + 0x168]
mov dword [esp + 0x26c], eax
mov eax, dword [esp + 0x484]
push edx
push 0x437fa0
push eax
push 0x78
push ecx
mov dword [esp + 0x284], ebp
call dword [sym.imp.USER32.dll_DialogBoxParamA]
cmp eax, 1
je 0x4389c7
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x46c
ret
push 0x7f02
push edi
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov esi, dword [esp + 0x490]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x10], edi
mov dword [esi + 0x10], 1
mov eax, dword [ebp + 8]
cmp eax, edi
jle 0x438b43
mov edx, dword [esp + 0x38]
lea ebx, [edi + edx]
mov eax, dword [esp + 0x270]
cmp edi, dword [eax + 8]
jge 0x438a1e
test edi, edi
jl 0x438a1e
mov eax, dword [eax + 4]
mov eax, dword [eax + edi*4]
jmp 0x438a20
xor eax, eax
mov edx, dword [esp + 0x26c]
lea ecx, [esp + 0x64]
push ecx
add edx, ebx
lea ecx, [esp + 0x16c]
push edx
push ecx
push eax
call fcn.00438880
lea edx, [esp + 0x74]
push 0
push edx
call fcn.004becfa
add esp, 0x18
test eax, eax
jne 0x438aa0
mov eax, dword [ebp + 8]
xor esi, esi
test eax, eax
jle 0x438a83
cmp esi, eax
jge 0x438a69
test esi, esi
jl 0x438a69
mov eax, dword [ebp + 4]
mov eax, dword [eax + esi*4]
jmp 0x438a6b
xor eax, eax
lea ecx, [esp + 0x64]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x438a99
mov eax, dword [ebp + 8]
inc esi
cmp esi, eax
jl 0x438a5d
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x490]
inc ecx
inc ebx
mov dword [esp + 0x38], ecx
jmp 0x438a06
mov esi, dword [esp + 0x490]
lea edx, [esp + 0x64]
push edx
call fcn.0044a200
mov ecx, eax
add esp, 4
test ecx, ecx
mov dword [esp + 0x30], ecx
je 0x438b33
mov eax, dword [esi + 0xc]
mov ebx, dword [esi + 8]
lea edx, [eax + 1]
cmp ebx, edx
jne 0x438b23
mov esi, dword [esp + 0x490]
add eax, dword [esi + 0x14]
lea eax, [eax*4 + 4]
push eax
call fcn.004be967
mov ecx, dword [esi + 0xc]
mov esi, dword [esi + 4]
mov ebx, eax
lea ecx, [ecx*4 + 4]
mov edi, ebx
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 esi, dword [esp + 0x494]
mov eax, dword [esi + 4]
push eax
call fcn.004be975
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x18]
add esp, 8
add eax, ecx
mov ecx, dword [esp + 0x30]
mov dword [esi + 4], ebx
mov dword [esi + 0xc], eax
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
mov dword [eax + edx*4], ecx
mov eax, dword [esi + 8]
inc eax
mov dword [esi + 8], eax
mov eax, dword [ebp + 8]
inc edi
cmp edi, eax
mov dword [esp + 0x10], edi
jl 0x4389ff
mov ecx, dword [str.ACDSee_32]
mov edx, dword [esp + 0x484]
mov edi, dword [esp + 0x480]
push 0x1f4
push ecx
push edx
push edi
call fcn.004539e0
mov esi, dword [esp + 0x49c]
mov ebx, eax
lea ecx, [esp + 0x4c]
mov eax, dword [esi + 8]
push eax
push 0xa8
push edi
push ecx
call fcn.0044c380
add esp, 0x20
lea edx, [esp + 0x3c]
push edx
push 0x1fb
push ebx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov eax, dword [esi + 8]
xor ebp, ebp
shl eax, 1
and eax, 0xffff
shl eax, 0x10
push eax
push ebp
push 0x401
push 0x208
push ebx
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov edi, dword [esi + 8]
lea ecx, [edi*4]
push ecx
call fcn.004be967
mov edx, dword [esp + 0x494]
mov dword [esp + 0x1c], eax
add esp, 4
dec edi
mov eax, dword [edx + 8]
mov dword [esp + 0x1c], ebp
test eax, eax
mov dword [esp + 0x20], edi
jle 0x438d9c
mov eax, dword [0x4eba3c]
test eax, eax
jne 0x438d9c
mov al, byte [0x4eb858]
mov ecx, 0x40
mov byte [esp + 0x64], al
xor eax, eax
lea edi, [esp + 0x65]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x64]
stosw word es:[edi], ax
push ecx
push 0
push 0x4e19b0
push 0x4e092c
stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
jne 0x438c48
lea edx, [esp + 0x64]
push edx
push eax
push 0x4e19b0
push 0x4e092c
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
je 0x438d28
lea eax, [esp + 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp ebp, dword [esi + 8]
jge 0x438c64
test ebp, ebp
jl 0x438c64
mov ecx, dword [esi + 4]
mov eax, dword [ecx + ebp*4]
jmp 0x438c66
xor eax, eax
lea edx, [esp + 0x64]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
je 0x438d59
lea eax, [esp + 0x64]
push eax
call fcn.0044a200
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je 0x438cf8
mov ecx, dword [esp + 0x20]
lea edi, [ecx + 1]
mov ecx, dword [esp + 0x1c]
cmp ecx, edi
jne 0x438ce8
mov edx, dword [esp + 0x20]
lea eax, [edx*4 + 0x104]
push eax
call fcn.004be967
mov esi, dword [esp + 0x1c]
mov ecx, edi
mov edi, eax
mov dword [esp + 0x34], eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004be975
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x494]
add esp, 8
add eax, 0x40
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [edx + ecx*4], eax
inc ecx
mov dword [esp + 0x1c], ecx
inc ebp
push 0
push ebp
push 0x402
push 0x208
push ebx
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push ebx
call fcn.00453a20
mov eax, dword [esp + 0x494]
add esp, 4
cmp ebp, dword [eax + 8]
jl 0x438be9
jmp 0x438d9c
lea ecx, [esp + 0x64]
lea edx, [esp + 0x274]
push ecx
push str.GetTempFileName___failed____s
push edx
call fcn.004bf8d4
mov ecx, dword [esp + 0x490]
lea eax, [esp + 0x280]
push eax
push ecx
call fcn.0044ae60
add esp, 0x14
jmp 0x438d9c
cmp ebp, dword [esi + 8]
jge 0x438d6a
test ebp, ebp
jl 0x438d6a
mov edx, dword [esi + 4]
mov eax, dword [edx + ebp*4]
jmp 0x438d6c
xor eax, eax
lea ecx, [esp + 0x64]
lea edx, [esp + 0x274]
push ecx
push eax
push str.MoveFile__s___s__failed
push edx
call fcn.004bf8d4
mov ecx, dword [esp + 0x494]
lea eax, [esp + 0x284]
push eax
push ecx
call fcn.0044ae60
add esp, 0x18
mov edx, dword [esp + 0x490]
mov eax, dword [edx + 8]
cmp ebp, eax
jge 0x438e48
push ebx
call dword [sym.imp.USER32.dll_DestroyWindow]
xor edi, edi
test ebp, ebp
jle 0x438df2
mov ebx, dword [sym.imp.KERNEL32.dll_MoveFileA]
cmp edi, dword [esi + 8]
jge 0x438dd2
test edi, edi
jl 0x438dd2
mov eax, dword [esi + 4]
mov ecx, dword [eax + edi*4]
jmp 0x438dd4
xor ecx, ecx
cmp edi, dword [esp + 0x1c]
jge 0x438de7
test edi, edi
jl 0x438de7
mov edx, dword [esp + 0x18]
mov eax, dword [edx + edi*4]
jmp 0x438de9
xor eax, eax
push ecx
push eax
call ebx
inc edi
cmp edi, ebp
jl 0x438dc1
mov eax, dword [esp + 0x34]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, dword [esp + 0x1c]
xor edi, edi
test eax, eax
jle 0x438e2e
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
cmp edi, esi
jge 0x438e1b
test edi, edi
jl 0x438e1b
mov eax, dword [ebx]
jmp 0x438e1d
xor eax, eax
push eax
call fcn.004be975
add esp, 4
inc edi
add ebx, 4
cmp edi, esi
jl 0x438e0b
mov ecx, dword [esp + 0x18]
push ecx
call fcn.004be975
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x46c
ret
xor esi, esi
test eax, eax
jle 0x438ecb
mov ebp, dword [esp + 0x490]
mov edi, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov ecx, dword [0x4eba3c]
test ecx, ecx
jne 0x438f06
cmp esi, eax
jge 0x438e79
test esi, esi
jl 0x438e79
mov edx, dword [ebp + 4]
mov ecx, dword [edx + esi*4]
jmp 0x438e7b
xor ecx, ecx
cmp esi, dword [esp + 0x1c]
jge 0x438e8e
test esi, esi
jl 0x438e8e
mov eax, dword [esp + 0x18]
mov eax, dword [eax + esi*4]
jmp 0x438e90
xor eax, eax
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
je 0x438f06
mov ecx, dword [esp + 0x48c]
push 0
mov edx, dword [ecx + 8]
lea eax, [esi + edx + 1]
push eax
push 0x402
push 0x208
push ebx
call edi
push ebx
call fcn.00453a20
mov eax, dword [ebp + 8]
add esp, 4
inc esi
cmp esi, eax
jl 0x438e5b
push ebx
call dword [sym.imp.USER32.dll_DestroyWindow]
mov edx, dword [esp + 0x34]
push edx
call dword [sym.imp.USER32.dll_SetCursor]
mov edi, dword [esp + 0x1c]
xor esi, esi
test edi, edi
jle 0x43901d
mov ebx, dword [esp + 0x18]
cmp esi, edi
jge 0x439006
test esi, esi
jl 0x439006
mov eax, dword [ebx]
jmp 0x439008
push ebx
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [0x4eba3c]
test eax, eax
jne 0x438f33
mov ecx, dword [esp + 0x484]
mov edx, dword [esp + 0x480]
push 0x45b
push ecx
push edx
call fcn.0044aec0
add esp, 0xc
mov ebx, dword [sym.imp.KERNEL32.dll_MoveFileA]
xor edi, edi
test esi, esi
jle 0x438f70
cmp edi, dword [esp + 0x1c]
jge 0x438f52
test edi, edi
jl 0x438f52
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4]
jmp 0x438f54
xor ecx, ecx
cmp edi, dword [ebp + 8]
jge 0x438f65
test edi, edi
jl 0x438f65
mov edx, dword [ebp + 4]
mov eax, dword [edx + edi*4]
jmp 0x438f67
xor eax, eax
push ecx
push eax
call ebx
inc edi
cmp edi, esi
jl 0x438f3f
mov eax, dword [ebp + 8]
xor esi, esi
test eax, eax
jle 0x438fb4
mov edi, dword [esp + 0x48c]
cmp esi, dword [edi + 8]
jge 0x438f91
test esi, esi
jl 0x438f91
mov eax, dword [edi + 4]
mov ecx, dword [eax + esi*4]
jmp 0x438f93
xor ecx, ecx
cmp esi, dword [esp + 0x1c]
jge 0x438fa6
test esi, esi
jl 0x438fa6
mov edx, dword [esp + 0x18]
mov eax, dword [edx + esi*4]
jmp 0x438fa8
xor eax, eax
push ecx
push eax
call ebx
mov eax, dword [ebp + 8]
inc esi
cmp esi, eax
jl 0x438f80
mov eax, dword [esp + 0x34]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov ebx, dword [esp + 0x1c]
xor esi, esi
test ebx, ebx
jle 0x438fec
mov edi, dword [esp + 0x18]
cmp esi, ebx
jge 0x438fd9
test esi, esi
jl 0x438fd9
mov eax, dword [edi]
jmp 0x438fdb
xor eax, eax
push eax
call fcn.004be975
add esp, 4
inc esi
add edi, 4
cmp esi, ebx
jl 0x438fd1
mov ecx, dword [esp + 0x18]
push ecx
call fcn.004be975
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x46c
ret
xor eax, eax
push eax
call fcn.004be975
add esp, 4
inc esi
add ebx, 4
cmp esi, edi
jl 0x438ef7
mov eax, dword [esp + 0x18]
push eax
call fcn.004be975
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x46c
ret