Function at 0x405d6f
Capabilities:
Check if file exists
Move file

Disassembly:
push 0x628
mov eax, 0x40a07b
call fcn.004092af
mov eax, dword [0x410dac]
mov edx, dword [eax - 0xc]
mov esi, ecx
mov eax, dword [esi]
mov dword [ebp - 0x634], esi
cmp dword [eax - 0xc], edx
jle 0x406057
mov ecx, dword [eax - 0xc]
lea eax, [ebp - 0x628]
push eax
sub ecx, edx
push esi
call fcn.0040641f
xor ebx, ebx
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 0x628]
add eax, 0xfffffff0
call fcn.00403dae
add eax, 0x10
mov dword [ebp - 0x62c], eax
mov byte [ebp - 4], 2
xor eax, eax
mov word [ebp - 0x18], ax
mov esi, 0x1fe
lea edi, [ebp - 0x16]
push esi
stosd dword es:[edi], eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push ebx
push eax
call sub.MSVCR100.dll_memset
xor eax, eax
push esi
mov word [ebp - 0x618], ax
lea eax, [ebp - 0x616]
push ebx
push eax
call sub.MSVCR100.dll_memset
xor eax, eax
push esi
mov word [ebp - 0x418], ax
lea eax, [ebp - 0x416]
push ebx
push eax
call sub.MSVCR100.dll_memset
mov esi, 0x100
push esi
lea eax, [ebp - 0x418]
push eax
push esi
lea eax, [ebp - 0x618]
push eax
push esi
lea eax, [ebp - 0x218]
push eax
push 3
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x628]
call dword [sym.imp.MSVCR100.dll__wsplitpath_s]
add esp, 0x48
lea eax, [ebp - 0x624]
push eax
lea edi, [ebp - 0x618]
call fcn.004024cf
mov byte [ebp - 4], 3
lea eax, [ebp - 0x61c]
push eax
lea edi, [ebp - 0x418]
call fcn.004024cf
mov byte [ebp - 4], 4
push 0x28
push dword [ebp - 0x61c]
call dword [sym.imp.MSVCR100.dll_wcsrchr]
pop ecx
pop ecx
cmp eax, ebx
je 0x405ed2
sub eax, dword [ebp - 0x61c]
sar eax, 1
cmp eax, 0xffffffff
je 0x405ed2
lea ecx, [ebp - 0x620]
push ecx
lea ecx, [ebp - 0x61c]
push ecx
mov ecx, eax
call fcn.0040641f
mov byte [ebp - 4], 5
lea edi, [ebp - 0x61c]
call fcn.00402552
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x620]
add eax, 0xfffffff0
call fcn.00405483
push dword [ebp - 0x61c]
lea eax, [ebp - 0x218]
push dword [ebp - 0x624]
push eax
lea eax, [ebp - 0x18]
push eax
push str._s_s_s_s
lea eax, [ebp - 0x62c]
call fcn.00406544
mov ebx, dword [ebp - 0x62c]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
add esp, 0x14
push ebx
call edi
test eax, eax
je 0x405fac
mov eax, dword [section..data]
mov ecx, section..data
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x620], eax
mov byte [ebp - 4], 8
mov dword [ebp - 0x630], 1
push dword [ebp - 0x61c]
lea eax, [ebp - 0x218]
push dword [ebp - 0x630]
push dword [ebp - 0x624]
push eax
lea eax, [ebp - 0x18]
push eax
push str._s_s_s__d__s
lea eax, [ebp - 0x620]
call fcn.00406544
add esp, 0x18
push dword [ebp - 0x620]
call edi
test eax, eax
je 0x405f83
inc dword [ebp - 0x630]
cmp dword [ebp - 0x630], esi
jl 0x405f37
jmp 0x405f9a
lea eax, [ebp - 0x620]
lea edi, [ebp - 0x62c]
call fcn.00402552
mov ebx, dword [ebp - 0x62c]
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x620]
add eax, 0xfffffff0
call fcn.00405483
mov edi, dword [ebp - 0x634]
mov eax, dword [edi]
push 8
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x40601c
lea eax, [ebp - 0x628]
call fcn.00402552
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x61c]
add eax, 0xfffffff0
call fcn.00405483
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x624]
add eax, 0xfffffff0
call fcn.00405483
mov byte [ebp - 4], 0
lea eax, [ebx - 0x10]
call fcn.00405483
mov dword [ebp - 4], 0xd
mov bl, 1
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x628]
add eax, 0xfffffff0
call fcn.00405483
mov al, bl
jmp 0x406059
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x61c]
add eax, 0xfffffff0
call fcn.00405483
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x624]
add eax, 0xfffffff0
call fcn.00405483
mov byte [ebp - 4], 0
lea eax, [ebx - 0x10]
call fcn.00405483
mov dword [ebp - 4], 0x11
xor bl, bl
jmp 0x406006
xor al, al
call fcn.00409332
ret