Function at 0x403d35
Capabilities:
Copy file
Move file

Disassembly:
push 0x64
mov eax, 0x62b24a
call fcn.004e5a7f
mov esi, ecx
lea eax, [ebp - 0x59]
xor bl, bl
push eax
mov byte [ebp - 0x59], bl
call fcn.00403bc0
mov byte [ebp - 0x5a], al
cmp byte [ebp - 0x59], bl
je 0x403fa4
lea eax, [esi + 4]
push eax
call fcn.00475f38
push eax
call fcn.00405fa7
cmp dword [esi], 0
pop ecx
pop ecx
je 0x403da5
xor edi, edi
push dword [esi]
inc edi
call fcn.0050060f
pop ecx
test eax, eax
je 0x403da2
cmp edi, 3
je 0x403d99
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp edi, 3
jl 0x403d75
jmp 0x403da5
mov ecx, dword [esi]
call fcn.00402723
jmp 0x403da5
and dword [esi], 0
lea eax, [esi + 4]
push eax
call fcn.00475f5d
push eax
call fcn.00405fa7
pop ecx
pop ecx
cmp byte [ebp - 0x5a], bl
je 0x403fa4
lea edi, [esi + 0x58]
push str..dltmp
mov edx, edi
lea ecx, [ebp - 0x28]
call fcn.00405538
pop ecx
xor ecx, ecx
lea eax, [ebp - 0x28]
push ecx
push 0x80
push 3
push ecx
mov dword [ebp - 4], ecx
cmp dword [ebp - 0x14], 0x10
push ecx
cmovae eax, dword [ebp - 0x28]
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x60], eax
cmp eax, 0xffffffff
jne 0x403f04
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x20
jne 0x403f98
push 0x6c184c
lea edx, [ebp - 0x28]
lea ecx, [ebp - 0x40]
call fcn.00405538
pop ecx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x40]
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x28]
push 0
cmovae ecx, dword [ebp - 0x40]
cmp dword [ebp - 0x14], 0x10
push ecx
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x403e80
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x28]
call fcn.004052ce
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
xor ecx, ecx
push ecx
push 0x80
push 3
push ecx
push ecx
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x60], eax
jmp 0x403eee
mov eax, dword [0x6e51fc]
test eax, eax
je 0x403eee
mov eax, dword [eax]
push ecx
push str.root_error_c1
mov eax, dword [eax + 8]
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x70]
push eax
call fcn.0040fafc
xor edx, edx
cmp dword [eax + 4], edx
je 0x403eab
mov eax, edx
jmp 0x403ead
mov eax, dword [eax]
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x64], eax
call fcn.0040b066
push eax
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], dl
call fcn.004060b1
mov byte [ebp - 4], 2
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp - 0x58]
push ecx
mov ecx, dword [0x6e51fc]
push eax
call dword [ebp - 0x68]
lea ecx, [ebp - 0x58]
call fcn.004060fd
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0
call fcn.004060fd
cmp dword [ebp - 0x60], 0xffffffff
je 0x403f98
mov eax, dword [esi + 0x38]
sub eax, dword [esi + 0x34]
mov esi, dword [ebp - 0x60]
push 0xfffffffffffffffc
sar eax, 2
pop ecx
imul eax, eax, 0xc
push 2
push 0
sub ecx, eax
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x403f39
push esi
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
lea ebx, [eax - 1]
neg ebx
sbb bl, bl
inc bl
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test bl, bl
je 0x403f98
push ecx
push 0x6c1850
mov ecx, edi
call fcn.00405220
cmp eax, 0xffffffff
je 0x403f74
push eax
push 0
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.004051d5
push eax
mov ecx, edi
call fcn.004052f6
lea ecx, [ebp - 0x40]
call fcn.004060fd
cmp dword [edi + 0x14], 0x10
jb 0x403f7c
mov edi, dword [edi]
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
push edi
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.00504bb6
neg eax
pop ecx
sbb al, al
inc al
pop ecx
mov bl, al
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.004060fd
mov ecx, dword [0x6e51fc]
test ecx, ecx
je 0x403fb8
mov edx, dword [ecx]
movzx eax, bl
dec eax
push eax
call dword [edx + 4]
mov al, bl
call fcn.004e5a3a
ret