Function at 0x47c150
Capabilities:
Check if file exists
Delete file
Move file

Disassembly:
push 0xffffffffffffffff
push 0x527228
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x44
push ebx
push ebp
push esi
push edi
mov ebp, ecx
xor ebx, ebx
lea ecx, [esp + 0x34]
mov dword [esp + 0x5c], ebx
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esp + 0x30]
mov byte [esp + 0x5c], 1
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x34]
push eax
push 0x566348
push ecx
mov byte [esp + 0x68], 2
call sub.MFC42.DLL_CString::Format
mov edx, dword [esp + 0x70]
add esp, 0xc
lea eax, [esp + 0x30]
push edx
push 0x566338
push eax
call sub.MFC42.DLL_CString::Format
add esp, 0xc
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 3
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x1c]
push ecx
push edx
push ebx
mov byte [esp + 0x68], 4
call fcn.0041eb80
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x24]
push eax
push ecx
push ebx
call fcn.0041eb80
mov edx, dword [esp + 0x34]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
add esp, 0x18
push edx
call esi
test eax, eax
je 0x47c710
mov eax, dword [esp + 0x18]
push eax
call esi
test eax, eax
je 0x47c76f
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x20], ebx
lea ecx, [esp + 0x20]
mov byte [esp + 0x5c], 6
push ecx
call fcn.00416d50
add esp, 4
test eax, eax
jl 0x47c6ea
lea edx, [esp + 0x2c]
push edx
call fcn.00416d50
add esp, 4
test eax, eax
jl 0x47c6ea
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x44]
push eax
mov dword [esp + 0x3c], ebx
mov word [esp + 0x48], bx
call fcn.00432170
mov esi, dword [esp + 0x44]
lea edx, [esp + 0x38]
push edx
mov eax, dword [esp + 0x24]
sub esp, 0x10
mov byte [esp + 0x70], 7
mov edx, esp
mov ecx, dword [eax]
push eax
mov dword [edx], esi
mov esi, dword [esp + 0x60]
mov dword [edx + 4], esi
mov esi, dword [esp + 0x64]
mov dword [edx + 8], esi
mov esi, dword [esp + 0x68]
mov dword [edx + 0xc], esi
call dword [ecx + 0xe8]
test eax, eax
jl 0x47c2be
cmp word [esp + 0x38], 0xffff
sete al
cmp al, bl
je 0x47c2be
mov edi, 1
jmp 0x47c2c0
xor edi, edi
lea eax, [esp + 0x44]
mov byte [esp + 0x5c], 6
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [esp + 0x1c]
mov word [esp + 0x44], bx
push ecx
lea ecx, [esp + 0x48]
call fcn.00432170
mov esi, dword [esp + 0x44]
lea ecx, [esp + 0x38]
push ecx
mov eax, dword [esp + 0x30]
sub esp, 0x10
mov byte [esp + 0x70], 8
mov ecx, esp
mov edx, dword [eax]
push eax
mov dword [ecx], esi
mov esi, dword [esp + 0x60]
mov dword [ecx + 4], esi
mov esi, dword [esp + 0x64]
mov dword [ecx + 8], esi
mov esi, dword [esp + 0x68]
mov dword [ecx + 0xc], esi
call dword [edx + 0xe8]
test eax, eax
jl 0x47c332
cmp word [esp + 0x38], 0xffff
sete al
cmp al, bl
je 0x47c332
mov esi, 1
jmp 0x47c334
xor esi, esi
lea edx, [esp + 0x44]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp edi, ebx
je 0x47c6ea
cmp esi, ebx
je 0x47c6ea
mov dword [esp + 0x14], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], ebx
push 0xffffffffffffffff
push 0x562d10
mov byte [esp + 0x64], 0xb
call fcn.00423b80
mov esi, eax
add esp, 8
mov dword [esp + 0x40], esi
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x24]
push edx
push esi
mov ecx, dword [eax]
push eax
mov byte [esp + 0x68], 0xc
call dword [ecx + 0x94]
test eax, eax
jl 0x47c3a2
mov edx, dword [esp + 0x24]
mov byte [esp + 0x13], bl
cmp edx, ebx
sete al
cmp al, bl
je 0x47c3a7
mov byte [esp + 0x13], 1
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push esi
mov byte [esp + 0x60], 0xb
call edi
mov al, byte [esp + 0x13]
push 0xffffffffffffffff
cmp al, bl
push str.softs
je 0x47c482
call fcn.00423b80
mov esi, eax
add esp, 8
mov dword [esp + 0x40], esi
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x14]
push edx
push esi
mov ecx, dword [eax]
push eax
mov byte [esp + 0x68], 0xd
call dword [ecx + 0x94]
test eax, eax
jl 0x47c403
mov edx, dword [esp + 0x14]
mov byte [esp + 0x13], bl
cmp edx, ebx
sete al
cmp al, bl
je 0x47c408
mov byte [esp + 0x13], 1
push esi
mov byte [esp + 0x60], 0xb
call edi
cmp byte [esp + 0x13], bl
je 0x47c512
mov eax, dword [esp + 0x24]
mov byte [esp + 0x5c], 0xa
cmp eax, ebx
je 0x47c42d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x28]
mov byte [esp + 0x5c], 9
cmp eax, ebx
je 0x47c440
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x14]
mov byte [esp + 0x5c], 6
cmp eax, ebx
je 0x47c453
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x20]
mov byte [esp + 0x5c], 5
cmp eax, ebx
je 0x47c466
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x5c], 4
cmp eax, ebx
je 0x47c710
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x47c710
call fcn.00423b80
mov esi, eax
add esp, 8
mov dword [esp + 0x40], esi
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x14]
push ecx
push esi
mov edx, dword [eax]
push eax
mov byte [esp + 0x68], 0xe
call dword [edx + 0x94]
test eax, eax
jl 0x47c4bd
mov edx, dword [esp + 0x14]
mov byte [esp + 0x13], bl
cmp edx, ebx
sete al
cmp al, bl
je 0x47c4c2
mov byte [esp + 0x13], 1
push esi
mov byte [esp + 0x60], 0xb
call edi
cmp byte [esp + 0x13], bl
je 0x47c512
mov eax, dword [esp + 0x24]
mov byte [esp + 0x5c], 0xa
cmp eax, ebx
je 0x47c4e3
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x28]
mov byte [esp + 0x5c], 9
cmp eax, ebx
je 0x47c4f6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x14]
mov byte [esp + 0x5c], 6
cmp eax, ebx
je 0x47c6ea
mov edx, dword [eax]
push eax
call dword [edx + 8]
jmp 0x47c6ea
lea eax, [esp + 0x28]
lea ecx, [esp + 0x2c]
push eax
push ecx
mov ecx, ebp
call fcn.0047d7d0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
cmp edx, ebx
je 0x47c6ad
cmp eax, ebx
je 0x47c6ad
lea ecx, [esp + 0x40]
mov dword [esp + 0x40], ebx
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x20]
mov eax, dword [esp + 0x40]
xor esi, esi
cmp eax, ebx
jle 0x47c5a1
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x3c]
push ecx
push esi
mov edx, dword [eax]
push eax
mov byte [esp + 0x68], 0xf
call dword [edx + 0x1c]
test eax, eax
mov eax, dword [esp + 0x3c]
jl 0x47c589
cmp eax, ebx
je 0x47c589
mov ecx, dword [esp + 0x14]
push ebx
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x54]
mov eax, dword [esp + 0x3c]
cmp eax, ebx
mov byte [esp + 0x5c], 0xb
je 0x47c598
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x40]
inc esi
cmp esi, eax
jl 0x47c554
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x44]
push edx
mov word [esp + 0x48], bx
call fcn.00432170
mov esi, dword [esp + 0x44]
sub esp, 0x10
mov eax, dword [esp + 0x30]
mov edx, esp
push eax
mov byte [esp + 0x70], 0x10
mov ecx, dword [eax]
mov dword [edx], esi
mov esi, dword [esp + 0x5c]
mov dword [edx + 4], esi
mov esi, dword [esp + 0x60]
mov dword [edx + 8], esi
mov esi, dword [esp + 0x64]
mov dword [edx + 0xc], esi
call dword [ecx + 0x108]
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [esp + 0x1c]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [esp + 0x24]
mov byte [esp + 0x5c], 0xa
cmp eax, ebx
je 0x47c60f
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x28]
mov byte [esp + 0x5c], 9
cmp eax, ebx
je 0x47c622
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x14]
mov byte [esp + 0x5c], 6
cmp eax, ebx
je 0x47c635
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x20]
mov byte [esp + 0x5c], 5
cmp eax, ebx
je 0x47c648
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x5c], 4
cmp eax, ebx
je 0x47c65b
mov edx, dword [eax]
push eax
call dword [edx + 8]
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x5c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov byte [esp + 0x5c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x34]
mov byte [esp + 0x5c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x64]
mov dword [esp + 0x5c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 1
jmp 0x47c75a
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x5c], 0xa
cmp ecx, ebx
je 0x47c6c8
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
cmp eax, ebx
mov byte [esp + 0x5c], 9
je 0x47c6db
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edx, dword [esp + 0x14]
cmp edx, ebx
mov byte [esp + 0x5c], 6
je 0x47c6ea
mov eax, dword [edx]
push edx
call dword [eax + 8]
mov eax, dword [esp + 0x20]
mov byte [esp + 0x5c], 5
cmp eax, ebx
je 0x47c6fd
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x5c], 4
cmp eax, ebx
je 0x47c710
mov edx, dword [eax]
push eax
call dword [edx + 8]
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x5c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov byte [esp + 0x5c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x34]
mov byte [esp + 0x5c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x64]
mov dword [esp + 0x5c], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor eax, eax
mov ecx, dword [esp + 0x54]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x50
ret 4
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
lea ecx, [esp + 0x18]
mov byte [esp + 0x5c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x5c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov byte [esp + 0x5c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x34]
mov byte [esp + 0x5c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x64]
mov dword [esp + 0x5c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 1
jmp 0x47c75a