Function at 0x406207
Capabilities:
Create directory
Get disk information

Disassembly:
push 0x68
mov eax, 0x41157e
call fcn.004105ff
mov dword [ebp - 0x44], edx
mov edi, ecx
mov esi, dword [ebp + 8]
xor ecx, ecx
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 4], ecx
cmp dword [esi + 0x14], 8
jb 0x406236
mov eax, dword [esi]
jmp 0x406238
mov eax, esi
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x406270
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x406270
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 3
jne 0x40648e
cmp dword [esi + 0x10], eax
jne 0x40648e
mov edx, 0x40340c
jmp 0x406275
mov edx, 0x4033d8
mov ebx, 0x415408
mov ecx, ebx
call fcn.0040b68e
mov edx, esi
mov ecx, eax
call fcn.0040b852
mov edx, 0x40333c
mov ecx, eax
call fcn.00405c37
lea eax, [ebp - 0x50]
mov ecx, edi
push eax
push dword [ebp - 0x44]
call fcn.0040d978
mov dword [ebp - 0x64], eax
test eax, eax
js 0x40643f
mov eax, dword [ebp - 0x4c]
sub eax, dword [ebp - 0x50]
push 0x18
cdq
pop ecx
idiv ecx
test eax, eax
je 0x406431
push dword [ebp - 0x50]
lea ecx, [ebp - 0x28]
call fcn.00407fec
mov byte [ebp - 4], 1
xor eax, eax
push 0x104
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
call fcn.00407db9
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x58]
mov edi, dword [ebp - 0x5c]
sub eax, edi
and dword [ebp - 0x44], 0
mov ecx, dword [ebp - 0x28]
sar eax, 1
cmp dword [ebp - 0x14], 8
jae 0x406308
lea ecx, [ebp - 0x28]
lea edx, [ebp - 0x44]
push edx
push eax
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_GetVolumePathNamesForVolumeNameW]
test eax, eax
je 0x40636c
xor eax, eax
cmp word [edi], ax
je 0x40636c
xor esi, esi
mov edx, 0x403440
mov ecx, ebx
call fcn.00405c37
mov edx, edi
mov ecx, eax
call fcn.0040b68e
mov edx, 0x40333c
mov ecx, eax
call fcn.00405c37
push edi
call dword [sym.imp.KERNEL32.dll_DeleteVolumeMountPointW]
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x40634f
sub ecx, edx
sar ecx, 1
lea edi, [edi + ecx*2]
add edi, 2
cmp word [edi], si
jne 0x406322
mov esi, dword [ebp - 0x60]
mov edx, esi
mov ecx, ebx
call fcn.0040b852
mov edx, 0x40344c
mov ecx, eax
call fcn.00405c37
lea edx, [ebp - 0x28]
mov ecx, eax
call fcn.0040b852
mov edi, 0x40333c
mov ecx, eax
mov edx, edi
call fcn.00405c37
cmp dword [ebp - 0x14], 8
mov eax, dword [ebp - 0x28]
jae 0x4063a5
lea eax, [ebp - 0x28]
cmp dword [esi + 0x14], 8
jb 0x4063ad
mov esi, dword [esi]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetVolumeMountPointW]
test eax, eax
jne 0x406413
lea ecx, [ebp - 0x74]
call fcn.004055d3
mov byte [ebp - 4], 3
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x74]
call fcn.00405658
mov esi, eax
mov byte [ebp - 4], 4
mov edx, 0x403460
mov ecx, ebx
call fcn.00405c37
mov edx, esi
mov ecx, eax
call fcn.0040b852
mov edx, edi
mov ecx, eax
call fcn.00405c37
mov byte [ebp - 4], 3
xor eax, eax
push eax
push 1
lea ecx, [ebp - 0x40]
call fcn.00409d62
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x74]
call dword [sym.imp.msvcrt.dll_public_virtual:_void___thiscall_exception::destructor_void_]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x5c]
call fcn.00407d9a
xor eax, eax
mov byte [ebp - 4], al
lea ecx, [ebp - 0x28]
push eax
push 1
call fcn.00409d62
jmp 0x406477
mov edx, 0x403354
mov ecx, ebx
call fcn.0040b68e
jmp 0x406477
push 0x405540
push eax
push 0x405560
mov edx, 0x403388
mov ecx, ebx
call fcn.0040b68e
mov ecx, eax
call fcn.00408cd0
mov ecx, eax
call fcn.00408bd3
mov ecx, eax
call fcn.00408cd0
mov edx, 0x40333c
mov ecx, eax
call fcn.00405c37
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x50]
call fcn.00407e50
mov eax, dword [ebp - 0x64]
call fcn.004105ae
ret 4
push 0x7b
lea ecx, [ebp - 0x74]
call fcn.00405616
push 0x414c58
lea eax, [ebp - 0x74]
push eax
call sub.msvcrt.dll__CxxThrowException
int3