Function at 0x406b96
Capabilities:
Copy file
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x468
mov eax, dword [0x432008]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov dword [ebp - 0x45c], eax
mov esi, ecx
push edi
lea eax, [ebp - 0x44c]
mov ebx, edx
push eax
push esi
mov dword [ebp - 0x464], ebx
call fcn.00410734
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x406bf8
call fcn.00414c68
push dword [eax]
push edi
push esi
push str.ensure_copy_recursive:_path_doesnt_exist:__S__rv:__d__err:__d
call fcn.00402191
push eax
call fcn.00408cbb
add esp, 0x14
push 6
pop eax
jmp 0x406e36
mov eax, dword [ebp - 0x446]
mov ecx, 0x4000
and eax, 0xf000
cmp ax, cx
je 0x406c42
xor edi, edi
push edi
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x406c3b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ebx
push esi
push str.ensure_copy:_failed_to_copy_the_file__S_over_to__S__lasterr:__x
call fcn.00402191
push eax
call fcn.00408cbb
add esp, 0x14
push 0x3d
pop edi
mov eax, edi
jmp 0x406e36
push ebx
call fcn.0041085a
mov ebx, eax
pop ecx
test ebx, ebx
jns 0x406c7c
call fcn.00414c68
cmp dword [eax], 0x11
je 0x406c7c
call fcn.00414c68
push dword [eax]
push ebx
push esi
push str.ensure_copy_recursive:_could_not_create_destination_directory:__S__rv:__d__err:__d
call fcn.00402191
push eax
call fcn.00408cbb
add esp, 0x14
push 7
jmp 0x406bf2
push 0x20c
call fcn.0040bcb6
pop ecx
push esi
mov ecx, eax
call fcn.00406e47
mov dword [ebp - 0x460], eax
test eax, eax
jne 0x406cac
call fcn.00414c68
push dword [eax]
push ebx
push esi
push str.ensure_copy_recursive:_path_is_not_a_directory:__S__rv:__d__err:__d
jmp 0x406be2
mov ecx, eax
call fcn.00406ec6
mov ecx, eax
mov dword [ebp - 0x454], ecx
test ecx, ecx
je 0x406e29
xor edi, edi
mov edx, 0x42cd00
mov eax, ecx
mov cx, word [eax]
cmp cx, word [edx]
mov ecx, dword [ebp - 0x454]
jne 0x406d09
cmp word [eax], di
je 0x406d05
mov cx, word [eax + 2]
cmp cx, word [edx + 2]
mov word [ebp - 0x44e], cx
mov ecx, dword [ebp - 0x454]
jne 0x406d09
add eax, 4
add edx, 4
cmp word [ebp - 0x44e], di
jne 0x406ccc
mov eax, edi
jmp 0x406d0e
sbb eax, eax
or eax, 1
test eax, eax
je 0x406e0e
mov edx, 0x42cc40
mov eax, ecx
mov cx, word [eax]
cmp cx, word [edx]
mov ecx, dword [ebp - 0x454]
jne 0x406d5a
cmp word [eax], di
je 0x406d56
mov cx, word [eax + 2]
cmp cx, word [edx + 2]
mov word [ebp - 0x44e], cx
mov ecx, dword [ebp - 0x454]
jne 0x406d5a
add eax, 4
add edx, 4
cmp word [ebp - 0x44e], di
jne 0x406d1d
mov eax, edi
jmp 0x406d5f
sbb eax, eax
or eax, 1
test eax, eax
je 0x406e0e
push ecx
push esi
push 0x42cd04
lea eax, [ebp - 0x214]
push 0x104
push eax
call fcn.0040214f
mov ecx, dword [ebp - 0x45c]
add esp, 0x14
mov dword [ebp - 0x450], edi
mov dword [ebp - 0x458], ecx
lea eax, [ebp - 0x214]
push eax
push ecx
call fcn.00417f95
pop ecx
pop ecx
test eax, eax
je 0x406e0e
mov eax, dword [ebp - 0x450]
mov ecx, dword [ebp - 0x458]
inc eax
add ecx, 0x208
mov dword [ebp - 0x450], eax
mov dword [ebp - 0x458], ecx
cmp eax, 3
jl 0x406d94
push dword [ebp - 0x454]
lea eax, [ebp - 0x41c]
push dword [ebp - 0x464]
push 0x42cd04
push 0x104
push eax
call fcn.0040214f
add esp, 0x14
lea edx, [ebp - 0x41c]
lea ecx, [ebp - 0x214]
push dword [ebp - 0x45c]
call fcn.00406b96
mov ebx, eax
pop ecx
test ebx, ebx
jne 0x406e29
mov ecx, dword [ebp - 0x460]
call fcn.00406ec6
mov ecx, eax
mov dword [ebp - 0x454], eax
test ecx, ecx
jne 0x406cc5
mov ecx, dword [ebp - 0x460]
call fcn.00406ea7
mov eax, ebx
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040b844
mov esp, ebp
pop ebp
ret