Function at 0x1003e50
Capabilities:
Copy file
Delete file

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x224
mov eax, dword [0x100d03c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x220], eax
xor eax, eax
xor ebx, ebx
push 0x206
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20a]
push ebx
push eax
mov dword [ebp - 0x224], edi
mov dword [ebp - 0x210], ebx
mov dword [ebp - 0x218], ebx
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [ebp - 0x214], ebx
mov dword [ebp - 0x21c], ebx
cmp edi, ebx
je 0x100412b
cmp dword [0x100d084], ebx
je 0x100412b
cmp dword [0x100d080], ebx
jbe 0x100412b
push esi
push 0x104
lea eax, [ebp - 0x20c]
push eax
call fcn.01003d2e
mov esi, eax
cmp esi, ebx
jl 0x10040df
lea eax, [ebp - 0x210]
push eax
push edi
call fcn.01005477
mov esi, eax
cmp esi, ebx
jge 0x1003f08
push esi
push 0x76
jmp 0x10040b6
mov ecx, dword [ebp - 0x210]
mov eax, dword [ecx]
push 0x1001278
call dword [eax + 0x58]
mov ecx, dword [ebp - 0x210]
mov eax, dword [ecx]
push 0x1001264
call dword [eax + 0x58]
mov ebx, 0x100d080
push ebx
push 0x20000
mov edi, 0x100125c
push edi
lea eax, [ebp - 0x218]
push eax
call fcn.01004e9e
mov esi, eax
test esi, esi
jge 0x1003f68
push ebx
push 0x10000
push edi
lea eax, [ebp - 0x218]
push eax
call fcn.01004e9e
mov esi, eax
test esi, esi
jl 0x10040c9
cmp dword [ebp - 0x218], 0
je 0x10040c9
mov ecx, dword [ebp - 0x210]
push dword [ebp - 0x218]
mov eax, dword [ecx]
call dword [eax + 0x6c]
mov esi, eax
test esi, esi
jge 0x1003f94
push esi
push 0x73
jmp 0x10040b6
mov ecx, dword [ebp - 0x210]
mov eax, dword [ecx]
lea edx, [ebp - 0x214]
push edx
call dword [eax + 0x14]
mov ecx, dword [ebp - 0x210]
mov esi, eax
mov eax, dword [ecx]
call dword [eax + 0x18]
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and dword [ebp - 0x210], 0
test esi, esi
jl 0x10040df
cmp dword [ebp - 0x214], 0
je 0x10040df
cmp dword [ebp + 0x10], 0
jne 0x10040df
push 0x1001240
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.msvcrt.dll__wfopen_s]
add esp, 0xc
test eax, eax
jne 0x10040bd
xor ebx, ebx
cmp dword [ebp - 0x21c], ebx
je 0x10040bd
push dword [ebp - 0x21c]
push dword [ebp - 0x214]
call dword [sym.imp.msvcrt.dll_fputws]
mov edi, 0xffff
pop ecx
pop ecx
cmp eax, edi
jne 0x1004055
mov eax, 0x80004005
push eax
push 0x74
mov esi, eax
call fcn.01003bed
push dword [ebp - 0x21c]
call dword [sym.imp.msvcrt.dll_fclose]
pop ecx
jmp 0x10040df
push dword [ebp - 0x21c]
call dword [sym.imp.msvcrt.dll_fclose]
pop ecx
cmp eax, 0xffffffff
jne 0x1004073
mov eax, 0x80004005
push eax
mov esi, eax
push 0x74
jmp 0x10040b6
push ebx
lea eax, [ebp - 0x20c]
cmp dword [ebp - 0x220], ebx
je 0x100408a
push dword [ebp - 0x220]
jmp 0x1004090
push dword [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x10040af
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, ebx
jle 0x10040b1
and esi, edi
or esi, 0x80070000
cmp esi, ebx
jge 0x10040df
push esi
push 0x75
call fcn.01003bed
jmp 0x10040df
mov eax, 0x80004005
push eax
mov esi, eax
push 0x70
jmp 0x10040b6
push esi
push 0x72
call fcn.01003bed
cmp dword [ebp - 0x218], 0
jne 0x10040df
mov esi, 0x80092004
cmp word [ebp - 0x20c], 0
je 0x10040f6
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp - 0x210]
test ecx, ecx
je 0x1004111
mov eax, dword [ecx]
call dword [eax + 0x18]
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebp - 0x214], 0
je 0x1004126
push dword [ebp - 0x214]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, esi
pop esi
jmp 0x1004130
mov eax, 0x80070057
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.0100480c
leave
ret 0xc