Function at 0x402610
Capabilities:
Create directory
Delete directory
Get disk information

Disassembly:
sub esp, 0xb40
mov eax, dword [0x4240c0]
xor eax, esp
mov dword [esp + 0xb3c], eax
mov eax, dword [0x41fdb8]
mov ecx, dword [0x41fdbc]
push ebx
mov ebx, dword [esp + 0xb48]
push esi
mov esi, dword [esp + 0xb50]
push edi
xor edx, edx
push 0x206
mov dword [esp + 0x18], eax
push edx
lea eax, [esp + 0x53a]
push eax
mov dword [esp + 0x24], ecx
mov word [esp + 0x53c], dx
call fcn.00402e30
mov edi, dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x73c]
push edx
push 0x104
push esi
call edi
test eax, eax
jne 0x4026bf
push esi
push str._s_is_an_invalid_file_name:_n
call fcn.0040384b
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.004019c0
add esp, 4
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov ecx, dword [esp + 0xb3c]
xor ecx, esp
call fcn.00403600
add esp, 0xb40
ret
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0x944]
push ecx
push 0x104
push ebx
call edi
test eax, eax
jne 0x402710
push ebx
push str._s_is_an_invalid_file_name:_n
call fcn.0040384b
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.004019c0
add esp, 4
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov ecx, dword [esp + 0xb3c]
xor ecx, esp
call fcn.00403600
add esp, 0xb40
ret
mov dx, word [esp + 0x940]
push 0x104
lea eax, [esp + 0x534]
push eax
push 0
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x30]
push ecx
mov word [esp + 0x34], dx
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
lea edx, [esp + 0x530]
push edx
push str.NTFS
call fcn.004037b8
add esp, 8
test eax, eax
je 0x402780
push str.Junctions_are_only_supported_on_NTFS_volumes._n_n
call fcn.0040384b
add esp, 4
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov ecx, dword [esp + 0xb3c]
xor ecx, esp
call fcn.00403600
add esp, 0xb40
ret
lea eax, [esp + 0x738]
push eax
lea ecx, [esp + 0x20]
push str.___s
push ecx
call fcn.00403433
lea eax, [esp + 0x28]
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4027a1
sub eax, edx
sar eax, 1
cmp word [esp + eax*2 + 0x1a], 0x5c
jne 0x4027f6
lea eax, [esp + 0x1c]
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4027c0
sub eax, edx
sar eax, 1
cmp word [esp + eax*2 + 0x18], 0x3a
je 0x4027f6
lea eax, [esp + 0x1c]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4027e0
sub eax, edx
sar eax, 1
xor edx, edx
mov word [esp + eax*2 + 0x1a], dx
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40283b
push ebx
push str.Error_creating__s:_n
call fcn.0040384b
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.004019c0
add esp, 4
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov ecx, dword [esp + 0xb3c]
xor ecx, esp
call fcn.00403600
add esp, 0xb40
ret
push 0
push 0x2200000
push 3
push 0
push 0
push 0x40000000
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x402892
push ebx
push str.Error_opening__s:_n
call fcn.0040384b
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.004019c0
add esp, 4
pop edi
or eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0xb3c]
xor ecx, esp
call fcn.00403600
add esp, 0xb40
ret
xor eax, eax
mov dword [esp + 0x224], eax
mov dword [esp + 0x228], eax
mov dword [esp + 0x22c], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0x234], eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x224], 0xa0000003
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4028d0
sub eax, edx
sar eax, 1
add eax, eax
mov word [esp + 0x22e], ax
mov ecx, dword [esp + 0x22e]
add ecx, 2
mov word [esp + 0x230], cx
xor eax, eax
lea ecx, [ecx]
movzx ecx, word [esp + eax + 0x1c]
mov word [esp + eax + 0x234], cx
add eax, 2
test cx, cx
jne 0x402900
movzx eax, word [esp + 0x22e]
push 0
lea edx, [esp + 0x14]
push edx
push 0
add eax, 0xc
push 0
mov dword [esp + 0x238], eax
add eax, 8
push eax
lea eax, [esp + 0x238]
push eax
push 0x900a4
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x402994
push ebx
push str.Error_setting_junction_for__s:_n
call fcn.0040384b
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.004019c0
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov ecx, dword [esp + 0xb3c]
xor ecx, esp
call fcn.00403600
add esp, 0xb40
ret
lea ecx, [esp + 0x738]
push ecx
lea edx, [esp + 0x944]
push edx
push str.Created:__s_nTargetted_at:__s_n
call fcn.0040384b
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0xb48]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00403600
add esp, 0xb40
ret