Function at 0x1003a3f0
Capabilities:
Check if file exists
Copy file
Create directory
Enumerate files on windows
Set file attributes

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1018140d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x3b8
mov eax, dword [0x101e42fc]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov byte [ebp - 0x37e], dl
mov edi, ecx
mov dword [ebp - 0x390], edi
mov dword [ebp - 0x384], 0
mov dword [ebp - 4], 0
xor eax, eax
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 7
mov word [ebp - 0x78], ax
mov byte [ebp - 4], 2
push 8
mov dword [ebp - 0x3a4], eax
mov dword [ebp - 0x3a0], eax
mov dword [ebp - 0x39c], eax
mov dword [ebp - 0x398], eax
mov dword [ebp - 0x394], eax
call fcn.1014d1eb
lea ecx, [ebp - 0x3a4]
add esp, 4
mov dword [eax + 4], 0
mov dword [ebp - 0x3a4], eax
mov dword [eax], ecx
mov byte [ebp - 4], 3
push 8
mov dword [ebp - 0x3b8], 0
mov dword [ebp - 0x3b4], 0
mov dword [ebp - 0x3b0], 0
mov dword [ebp - 0x3ac], 0
mov dword [ebp - 0x3a8], 0
call fcn.1014d1eb
lea ecx, [ebp - 0x3b8]
add esp, 4
mov dword [eax + 4], 0
mov dword [ebp - 0x3b8], eax
mov dword [eax], ecx
mov dword [ebp - 0x3c4], 0
mov dword [ebp - 0x3c0], 0
mov dword [ebp - 0x3bc], 0
mov byte [ebp - 4], 5
call fcn.10002de0
push str.Function_:copyPrimitive_n
push 0x101a55a8
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x50]
mov ecx, esi
call dword [0x1018a4d4]
call esi
add esp, 0xc
mov dword [ebp - 0xc8], 0
xor eax, eax
mov dword [ebp - 0xc4], 7
lea ecx, [ebp - 0xd8]
mov word [ebp - 0xd8], ax
push eax
push 0x101a4aec
call fcn.10001c20
cmp byte [ebx + 8], 0
mov byte [ebp - 4], 6
je 0x1003a598
lea ecx, [ebx + 0x10]
call fcn.100e0ed0
lea ecx, [ebx + 0x28]
call fcn.100e0ed0
push 4
push 0x101bbd08
lea ecx, [ebp - 0xd8]
call fcn.10001c20
cmp dword [ebx + 0x24], 8
lea eax, [ebx + 0x10]
cmovae eax, dword [ebx + 0x10]
push eax
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.10019410
add esp, 0xc
push eax
lea ecx, [ebp - 0x3a4]
mov byte [ebp - 4], 7
call fcn.1003de80
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 6
call fcn.10001bc0
cmp dword [ebx + 0x3c], 8
lea eax, [ebx + 0x28]
cmovae eax, dword [ebx + 0x28]
push eax
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.10019410
add esp, 0xc
push eax
lea ecx, [ebp - 0x3b8]
mov byte [ebp - 4], 8
call fcn.1003de80
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 6
call fcn.10001bc0
cmp dword [ebx + 0x3c], 8
lea eax, [ebx + 0x28]
mov dword [ebp - 0x3c0], 0
cmovae eax, dword [ebx + 0x28]
push eax
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.10019410
add esp, 0xc
push eax
push 0
lea ecx, [ebp - 0x3c4]
mov byte [ebp - 4], 9
call fcn.10019670
lea ecx, [ebp - 0x90]
call fcn.10001bc0
xor eax, eax
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 7
mov word [ebp - 0xc0], ax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], 7
mov word [ebp - 0xa8], ax
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x394]
test ecx, ecx
je 0x1003b314
mov eax, dword [ebp - 0x398]
lea edx, [ebp - 0x3a4]
add eax, ecx
lea esi, [ebp - 0x3b8]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x374], eax
dec ecx
dec eax
and ecx, eax
mov eax, dword [edx + 4]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0xc0]
cmp ecx, eax
je 0x1003a6f3
cmp dword [eax + 0x14], 8
mov ecx, eax
jb 0x1003a6e4
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
lea ecx, [ebp - 0xc0]
call fcn.10001c20
mov eax, dword [ebp - 0x3ac]
add eax, dword [ebp - 0x3a8]
mov ecx, dword [esi + 8]
mov dword [ebp - 0x374], eax
dec ecx
dec eax
and ecx, eax
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0xa8]
cmp ecx, eax
je 0x1003a735
cmp dword [eax + 0x14], 8
mov ecx, eax
jb 0x1003a726
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
lea ecx, [ebp - 0xa8]
call fcn.10001c20
push 0x101a4ae8
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.10019410
add esp, 0xc
push 1
push 0x101bb9d0
mov ecx, eax
mov byte [ebp - 4], 0xc
call fcn.10001d30
or dword [ebp - 0x384], 1
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x28], xmm0
movups xmmword [ebp - 0x60], xmm0
movq xmm0, qword [eax + 0x10]
mov word [eax], cx
lea ecx, [ebp - 0x78]
movq qword [ebp - 0x378], xmm0
movq qword [ebp - 0x50], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
call fcn.10001bc0
movups xmm0, xmmword [ebp - 0x28]
xor eax, eax
mov dword [ebp - 0x50], 0
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x4c], 7
movups xmmword [ebp - 0x78], xmm0
mov word [ebp - 0x60], ax
movq xmm0, qword [ebp - 0x378]
movq qword [ebp - 0x68], xmm0
call fcn.10001bc0
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0xb
call fcn.10001bc0
mov eax, dword [ebp - 0x398]
mov ecx, dword [ebp - 0x394]
dec eax
mov edx, dword [ebp - 0x39c]
add ecx, eax
mov eax, dword [ebp - 0x3a0]
dec edx
and edx, ecx
mov ecx, dword [eax + edx*4]
call fcn.10001bc0
sub dword [ebp - 0x394], 1
mov ecx, 0
mov eax, dword [ebp - 0x398]
mov edx, dword [ebp - 0x3b0]
cmove eax, ecx
mov ecx, dword [ebp - 0x3a8]
dec edx
mov dword [ebp - 0x398], eax
mov eax, dword [ebp - 0x3ac]
dec eax
add ecx, eax
mov eax, dword [ebp - 0x3b4]
and edx, ecx
mov ecx, dword [eax + edx*4]
call fcn.10001bc0
sub dword [ebp - 0x3a8], 1
mov ecx, 0
mov eax, dword [ebp - 0x3ac]
cmove eax, ecx
cmp dword [ebp - 0x64], 8
mov dword [ebp - 0x3ac], eax
lea ecx, [ebp - 0x370]
lea eax, [ebp - 0x78]
cmovae eax, dword [ebp - 0x78]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x388], eax
cmp eax, 0xffffffff
je 0x1003b29b
mov esi, eax
nop word [eax + eax]
mov edx, 0x101bb564
lea ecx, [ebp - 0x344]
nop dword [eax + eax]
mov ax, word [ecx]
cmp ax, word [edx]
jne 0x1003a8c6
test ax, ax
je 0x1003a8c2
mov ax, word [ecx + 2]
cmp ax, word [edx + 2]
jne 0x1003a8c6
add ecx, 4
add edx, 4
test ax, ax
jne 0x1003a8a0
xor eax, eax
jmp 0x1003a8cb
sbb eax, eax
or eax, 1
test eax, eax
je 0x1003b008
mov ecx, 0x101bb568
lea eax, [ebp - 0x344]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1003a906
test dx, dx
je 0x1003a902
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1003a906
add eax, 4
add ecx, 4
test dx, dx
jne 0x1003a8e0
xor eax, eax
jmp 0x1003a90b
sbb eax, eax
or eax, 1
test eax, eax
je 0x1003b008
test byte [ebp - 0x370], 0x10
lea eax, [ebp - 0xc0]
push 0x101a4ae8
push eax
je 0x1003ac76
lea eax, [ebp - 0x48]
push eax
call fcn.10019410
add esp, 0xc
mov edx, eax
lea ecx, [ebp - 0x344]
mov byte [ebp - 4], 0xe
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1003a947
sub ecx, esi
lea eax, [ebp - 0x344]
sar ecx, 1
push ecx
push eax
mov ecx, edx
call fcn.10001d30
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xf0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xe0], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
lea eax, [ebp - 0xf0]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp - 0x3a4]
call fcn.1003de80
lea ecx, [ebp - 0xf0]
call fcn.10001bc0
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0xb
call fcn.10001bc0
push 0x101a4ae8
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.10019410
add esp, 0xc
mov edx, eax
lea ecx, [ebp - 0x344]
mov byte [ebp - 4], 0x10
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1003a9e3
sub ecx, esi
lea eax, [ebp - 0x344]
sar ecx, 1
push ecx
push eax
mov ecx, edx
call fcn.10001d30
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x90], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x80], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 0x11
push eax
lea ecx, [ebp - 0x3b8]
call fcn.1003de80
lea ecx, [ebp - 0x90]
call fcn.10001bc0
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0xb
call fcn.10001bc0
push 0x101a4ae8
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.10019410
add esp, 0xc
mov edx, eax
lea ecx, [ebp - 0x344]
mov byte [ebp - 4], 0x12
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1003aa80
sub ecx, esi
lea eax, [ebp - 0x344]
sar ecx, 1
push ecx
push eax
mov ecx, edx
call fcn.10001d30
or dword [ebp - 0x384], 0xe
xor ecx, ecx
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x30], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x20], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x14
call fcn.10001bc0
cmp dword [ebp - 0x1c], 8
lea eax, [ebp - 0x30]
push 0
cmovae eax, dword [ebp - 0x30]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
cmp byte [ebp - 0x37e], 0
je 0x1003ac0c
cmp eax, 5
jne 0x1003ac0c
cmp dword [ebp - 0x1c], 8
lea eax, [ebp - 0x30]
push 0x44
cmovae eax, dword [ebp - 0x30]
xor edi, edi
push edi
mov dword [ebp - 0x374], eax
mov dword [ebp - 0x38c], edi
mov dword [ebp - 0x37c], 0x44
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov esi, eax
test esi, esi
je 0x1003b039
lea eax, [ebp - 0x37c]
push eax
push esi
push edi
push 0x1a
call dword [sym.imp.ADVAPI32.dll_CreateWellKnownSid]
test eax, eax
je 0x1003ab79
mov ecx, dword [ebp - 0x374]
lea eax, [ebp - 0x38c]
push eax
sub esp, 0x14
push esi
call fcn.100e3660
mov edi, dword [ebp - 0x38c]
add esp, 0x1c
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
test edi, edi
jne 0x1003b039
xor esi, esi
nop word [eax + eax]
push esi
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp - 0x1c], 8
lea eax, [ebp - 0x30]
push 0
cmovae eax, dword [ebp - 0x30]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
test eax, eax
jne 0x1003ac10
cmp dword [ebp - 0x1c], 8
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1003abff
call fcn.10002de0
cmp dword [ebp - 0x1c], 8
lea ecx, [ebp - 0x30]
cmovae ecx, dword [ebp - 0x30]
mov edi, dword [eax]
push ecx
push str.Temporary_folder_to_be_deleted_at_path__s
push 0x101a53f8
mov edi, dword [edi + 0x44]
mov ecx, edi
push eax
call dword [0x1018a4d4]
call edi
push 0
lea ecx, [ebp - 0x30]
call fcn.100e2550
add esp, 0x14
add esi, 0x64
cmp esi, 0x1f4
jl 0x1003ab90
jmp 0x1003ac20
test eax, eax
je 0x1003ac20
cmp eax, 0xb7
je 0x1003ac20
cmp eax, 0x50
jne 0x1003b039
cmp dword [ebp - 0x20], 0
je 0x1003ac5f
cmp dword [ebp - 0x1c], 8
lea eax, [ebp - 0x30]
push 0
cmovae eax, dword [ebp - 0x30]
push 0xa0000080
push 4
push 0
push 1
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x1003ac5f
push esi
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0xb
call fcn.10001bc0
mov edi, dword [ebp - 0x390]
jmp 0x1003b002
lea eax, [ebp - 0x108]
push eax
call fcn.10019410
add esp, 0xc
mov edx, eax
lea ecx, [ebp - 0x344]
mov byte [ebp - 4], 0x16
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1003ac94
sub ecx, esi
lea eax, [ebp - 0x344]
sar ecx, 1
push ecx
push eax
mov ecx, edx
call fcn.10001d30
mov dword [ebp - 0x38], 0
xor ecx, ecx
mov dword [ebp - 0x34], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x48], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x38], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 0x18
call fcn.10001bc0
push 0x101a4ae8
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp - 0x120]
push eax
call fcn.10019410
add esp, 0xc
mov edx, eax
lea ecx, [ebp - 0x344]
mov byte [ebp - 4], 0x19
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1003ad20
sub ecx, esi
lea eax, [ebp - 0x344]
sar ecx, 1
push ecx
push eax
mov ecx, edx
call fcn.10001d30
or dword [ebp - 0x384], 0x30
xor ecx, ecx
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x30], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x20], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
lea ecx, [ebp - 0x120]
mov byte [ebp - 4], 0x1b
call fcn.10001bc0
cmp dword [ebp - 0x1c], 8
lea ecx, [ebp - 0x30]
push 0
cmovae ecx, dword [ebp - 0x30]
lea eax, [ebp - 0x48]
cmp dword [ebp - 0x34], 8
push ecx
cmovae eax, dword [ebp - 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
setne cl
mov byte [ebp - 0x37d], cl
test eax, eax
jne 0x1003aef1
cmp byte [ebp - 0x37e], al
je 0x1003aef1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x1003af3a
cmp dword [ebp - 0x1c], 8
lea eax, [ebp - 0x30]
push 0x44
cmovae eax, dword [ebp - 0x30]
xor edi, edi
push edi
mov dword [ebp - 0x37c], eax
mov dword [ebp - 0x38c], edi
mov dword [ebp - 0x374], 0x44
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov esi, eax
test esi, esi
je 0x1003aee5
lea eax, [ebp - 0x374]
push eax
push esi
push edi
push 0x1a
call dword [sym.imp.ADVAPI32.dll_CreateWellKnownSid]
test eax, eax
je 0x1003ae3e
mov ecx, dword [ebp - 0x37c]
lea eax, [ebp - 0x38c]
push eax
sub esp, 0x14
push esi
call fcn.100e3660
mov edi, dword [ebp - 0x38c]
add esp, 0x1c
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
test edi, edi
jne 0x1003aee5
nop dword [eax]
push edi
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp - 0x1c], 8
lea ecx, [ebp - 0x30]
push 0
cmovae ecx, dword [ebp - 0x30]
lea eax, [ebp - 0x48]
cmp dword [ebp - 0x34], 8
push ecx
cmovae eax, dword [ebp - 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
setne cl
mov byte [ebp - 0x37d], cl
test eax, eax
jne 0x1003aeeb
cmp dword [ebp - 0x1c], 8
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1003aed6
call fcn.10002de0
cmp dword [ebp - 0x1c], 8
lea ecx, [ebp - 0x30]
cmovae ecx, dword [ebp - 0x30]
mov esi, dword [eax]
push ecx
push str.Temporary_file_to_be_deleted_at_path__s
push 0x101a53f8
mov esi, dword [esi + 0x44]
mov ecx, esi
push eax
call dword [0x1018a4d4]
call esi
push 0
mov dl, 1
lea ecx, [ebp - 0x30]
call fcn.100e3030
add esp, 0x14
add edi, 0x64
cmp edi, 0x1f4
jl 0x1003ae50
mov cl, byte [ebp - 0x37d]
mov edi, dword [ebp - 0x390]
test cl, cl
jne 0x1003af42
cmp byte [ebx + 0xc], cl
je 0x1003b10e
call fcn.10002de0
cmp dword [ebp - 0x1c], 8
lea edx, [ebp - 0x30]
lea ecx, [ebp - 0x48]
cmovae edx, dword [ebp - 0x30]
cmp dword [ebp - 0x34], 8
mov esi, dword [eax]
cmovae ecx, dword [ebp - 0x48]
push edx
push ecx
mov esi, dword [esi + 0x44]
mov ecx, esi
push str.Ignored_file_copy_error_from_source__s__to_destination__s_
push 0x101a53f8
push eax
call dword [0x1018a4d4]
call esi
add esp, 0x14
jmp 0x1003af81
mov cl, byte [ebp - 0x37d]
jmp 0x1003aef1
cmp dword [ebp - 0x20], 0
je 0x1003af81
cmp dword [ebp - 0x1c], 8
lea eax, [ebp - 0x30]
push 0
cmovae eax, dword [ebp - 0x30]
push 0xa0000080
push 4
push 0
push 1
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x1003af81
push esi
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
je 0x1003afda
mov ecx, dword [ebp - 0x354]
xor eax, eax
mov edx, dword [edi + 0x58]
neg ecx
add ecx, dword [ebp - 0x350]
adc eax, eax
add dword [edx + 0xd0], ecx
adc dword [edx + 0xd4], eax
mov ecx, dword [edi + 0x58]
mov eax, dword [ecx + 0xc8]
or eax, dword [ecx + 0xcc]
je 0x1003afd3
mov esi, dword [ecx + 0xfc]
test esi, esi
je 0x1003afda
push 4
push ecx
mov ecx, esi
call dword [0x1018a4d4]
call esi
add esp, 8
jmp 0x1003afda
mov byte [ecx + 0xe0], 0
cmp dword [ebp - 0x1c], 8
lea eax, [ebp - 0x30]
push 0
cmovae eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea ecx, [ebp - 0x30]
call fcn.10001bc0
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0xb
call fcn.10001bc0
mov esi, dword [ebp - 0x388]
lea eax, [ebp - 0x370]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x1003a890
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
cmp eax, 0x12
jne 0x1003b212
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x1003a69b
cmp dword [ebp - 0x1c], 8
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_create_folder_error_:_d_path_:_ls
push 0x101a53f8
call fcn.10002de0
push eax
call fcn.10003e20
add esp, 0x14
lea esi, [ebp - 0x30]
cmp dword [ebp - 0x1c], 8
cmovae esi, dword [ebp - 0x30]
call fcn.1002ca40
mov edi, eax
test esi, esi
je 0x1003b0d6
push 0x16
xor eax, eax
mov dword [ebp - 0x50], 0
push str.copyCreateFolderFailed
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x4c], 7
mov word [ebp - 0x60], ax
call fcn.10001c20
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x15
push eax
lea ecx, [edi + 0x20]
call fcn.1000a240
mov edx, esi
lea edi, [edx + 2]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x1003b0b2
sub edx, edi
mov ecx, eax
sar edx, 1
push edx
push esi
call fcn.10001c20
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x14
call fcn.10001bc0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.copyCreateFolderFailedError
call fcn.1002ca40
mov ecx, eax
call fcn.1002cc30
push dword [ebp - 0x388]
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [ebp - 0x30]
call fcn.10001bc0
mov byte [ebp - 0x37d], 0
jmp 0x1003b31b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp - 0x1c], 8
lea edx, [ebp - 0x30]
lea ecx, [ebp - 0x48]
mov edi, eax
cmovae edx, dword [ebp - 0x30]
cmp dword [ebp - 0x34], 8
push edx
cmovae ecx, dword [ebp - 0x48]
push ecx
push edi
push str.Failed_to_CopyFile._LastError___d_srcpath_:__ls_destPath:__ls
push 0x101a53f8
push ecx
call fcn.10002de0
add esp, 4
push eax
call fcn.10003e20
add esp, 0x18
lea esi, [ebp - 0x48]
cmp dword [ebp - 0x34], 8
cmovae esi, dword [ebp - 0x48]
call fcn.1002ca40
mov dword [ebp - 0x374], eax
test esi, esi
je 0x1003b1d8
push 0xa
xor eax, eax
mov dword [ebp - 0x50], 0
push str.copyfailed
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x4c], 7
mov word [ebp - 0x60], ax
call fcn.10001c20
mov byte [ebp - 4], 0x1c
lea eax, [ebp - 0x60]
mov ecx, dword [ebp - 0x374]
push eax
add ecx, 0x20
call fcn.1000a240
mov edx, esi
lea ecx, [edx + 2]
mov dword [ebp - 0x374], ecx
nop dword [eax]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x1003b1b0
sub edx, dword [ebp - 0x374]
mov ecx, eax
sar edx, 1
push edx
push esi
call fcn.10001c20
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x1b
call fcn.10001bc0
push edi
push str.copyfailedError
call fcn.1002ca40
mov ecx, eax
call fcn.1002cc30
push dword [ebp - 0x388]
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [ebp - 0x30]
call fcn.10001bc0
lea ecx, [ebp - 0x48]
call fcn.10001bc0
mov byte [ebp - 0x37d], 0
jmp 0x1003b31b
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword fs:[0x2c]
mov ecx, dword [0x101e96e4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x101eac80]
cmp eax, dword [ecx + 4]
jle 0x1003b271
push 0x101eac80
call fcn.1014d6ba
add esp, 4
cmp dword [0x101eac80], 0xffffffff
jne 0x1003b271
mov byte [ebp - 4], 0x1d
call fcn.10002a40
push 0x101893b0
call fcn.1014d520
add esp, 4
mov byte [ebp - 4], 0xb
push 0x101eac80
call fcn.1014d670
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_occured_:_d_n
push 0x101a55a8
push 0x101eabc0
call fcn.100037f0
add esp, 0x10
mov byte [ebp - 0x37d], 0
jmp 0x1003b31b
mov eax, dword fs:[0x2c]
mov ecx, dword [0x101e96e4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x101eac80]
cmp eax, dword [ecx + 4]
jle 0x1003b2f4
push 0x101eac80
call fcn.1014d6ba
add esp, 4
cmp dword [0x101eac80], 0xffffffff
jne 0x1003b2f4
mov byte [ebp - 4], 0xd
call fcn.10002a40
push 0x101893b0
call fcn.1014d520
add esp, 4
mov byte [ebp - 4], 0xb
push 0x101eac80
call fcn.1014d670
add esp, 4
push str.Failed_to_get_handle_n
push 0x101a55a8
push 0x101eabc0
call fcn.100037f0
add esp, 0xc
mov byte [ebp - 0x37d], 0
jmp 0x1003b31b
mov byte [ebp - 0x37d], 1
lea ecx, [ebp - 0xa8]
call fcn.10001bc0
lea ecx, [ebp - 0xc0]
call fcn.10001bc0
lea ecx, [ebp - 0xd8]
call fcn.10001bc0
lea ecx, [ebp - 0x3c4]
call fcn.1000a6f0
lea ecx, [ebp - 0x3b8]
call fcn.1003df20
lea ecx, [ebp - 0x3a4]
call fcn.1003df20
lea ecx, [ebp - 0x78]
call fcn.10001bc0
lea ecx, [ebx + 0x10]
call fcn.10001bc0
lea ecx, [ebx + 0x28]
call fcn.10001bc0
mov al, byte [ebp - 0x37d]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1014d1d5
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret