Function at 0x402fae
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x73c
mov al, byte [0x41fcac]
push ebx
push esi
push edi
mov byte [ebp - 0x73c], al
mov ecx, 0x8b
xor eax, eax
lea edi, [ebp - 0x73b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
call fcn.00409bf1
test eax, eax
je 0x402ffc
cmp dword [0x4210a8], 0
jne 0x402ffc
push 5
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
jmp 0x403227
call fcn.00409c1f
test eax, eax
jne 0x403011
cmp dword [0x4210a8], eax
je 0x403227
cmp dword [0x424ee0], 0
jne 0x403045
mov esi, 0x1000
push esi
call fcn.00409ed1
test eax, eax
pop ecx
mov dword [0x424ee0], eax
je 0x4031f6
push 0x41c05c
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov dword [0x42016c], esi
lea eax, [ebp - 0x104]
push eax
push dword [ebp + 0xc]
call fcn.00409fea
pop ecx
mov edi, dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
pop ecx
mov ebx, 0x104
lea eax, [ebp - 0x208]
push ebx
push eax
lea eax, [ebp - 0x104]
push eax
call edi
lea eax, [ebp - 0x104]
push eax
push dword [ebp + 0xc]
call fcn.00409fae
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
pop ecx
pop ecx
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x208]
push eax
call esi
lea eax, [ebp - 0x104]
push eax
push dword [ebp + 8]
call fcn.00409fea
pop ecx
lea eax, [ebp - 0x30c]
pop ecx
push ebx
push eax
lea eax, [ebp - 0x104]
push eax
call edi
lea eax, [ebp - 0x104]
push eax
push dword [ebp + 8]
call fcn.00409fae
pop ecx
lea eax, [ebp - 0x104]
pop ecx
push eax
lea eax, [ebp - 0x30c]
push eax
call esi
cmp dword [0x4210a8], 0
je 0x403195
mov al, byte [0x41fcac]
push 0x7f
mov byte [ebp - 0x50c], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x50b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x50c]
push str._echo_off_r_n
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x50c]
push str.attrib__r__s___nul_r_n
push eax
call esi
mov edi, str.erase__s___nul_r_n
lea eax, [ebp - 0x50c]
push edi
push eax
call esi
lea eax, [ebp - 0x50c]
push str.copy__s__s___nul_r_n
push eax
call esi
lea eax, [ebp - 0x50c]
push edi
push eax
call esi
lea eax, [ebp - 0x50c]
push str.echo_on_r_n
push eax
call esi
lea eax, [ebp - 0x30c]
push eax
lea eax, [ebp - 0x208]
push eax
lea eax, [ebp - 0x30c]
push eax
lea eax, [ebp - 0x208]
push eax
lea eax, [ebp - 0x208]
push eax
lea eax, [ebp - 0x50c]
push eax
lea eax, [ebp - 0x73c]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x1c
jmp 0x4031b8
lea eax, [ebp - 0x30c]
push eax
lea eax, [ebp - 0x208]
push eax
lea eax, [ebp - 0x73c]
push str._s_s_r_n
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push dword [0x424ee0]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
call edi
mov ebx, eax
lea eax, [ebp - 0x73c]
push eax
call edi
add ebx, eax
cmp ebx, dword [0x42016c]
jl 0x403218
push 0x1004
push dword [0x424ee0]
call fcn.00409f18
pop ecx
mov dword [0x424ee0], eax
test eax, eax
pop ecx
jne 0x40320e
push dword [0x423660]
push 1
push 0x10
push 1
call fcn.0040523a
add esp, 0x10
xor eax, eax
jmp 0x403227
add dword [0x42016c], 0x1000
lea eax, [ebp - 0x73c]
push eax
push dword [0x424ee0]
call esi
pop edi
pop esi
pop ebx
leave
ret