Function at 0x40aa28
Capabilities:
Create directory

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x3020
call fcn.0040f710
mov eax, dword [0x410004]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
mov dword [ebp - 0x3014], edx
mov dword [ebp - 0x3010], esi
mov eax, edi
mov bl, byte [edi]
test bl, bl
je 0x40aa90
cmp bl, 0x5c
je 0x40aa8a
cmp bl, 0x2f
je 0x40aa8a
cmp bl, 0x3a
jne 0x40aa79
mov cl, byte [eax + 1]
cmp cl, 0x5c
je 0x40aa79
cmp cl, 0x2f
jne 0x40aa8a
push 0
push eax
push 0
call dword [sym.imp.USER32.dll_CharNextExA]
mov bl, byte [eax]
test bl, bl
jne 0x40aa5d
mov edx, dword [ebp - 0x3014]
mov byte [ebp - 0x100c], 0
cmp byte [eax], 0
jne 0x40aaa0
test edx, edx
jne 0x40aaa2
mov eax, edi
cmp byte [eax], 0
je 0x40ab5b
mov ebx, esi
mov cl, byte [eax]
test cl, cl
je 0x40ab59
mov esi, eax
cmp cl, 0x5c
je 0x40aae6
cmp cl, 0x2f
je 0x40aae6
cmp cl, 0x3a
jne 0x40aad3
mov al, byte [esi + 1]
cmp al, 0x5c
je 0x40aad3
cmp al, 0x2f
jne 0x40aae6
push 0
push esi
push 0
call dword [sym.imp.USER32.dll_CharNextExA]
mov esi, eax
mov cl, byte [esi]
test cl, cl
jne 0x40aab9
mov cl, byte [esi]
test cl, cl
jne 0x40aaf5
cmp dword [ebp - 0x3014], 0
jne 0x40ab4d
mov eax, esi
sub eax, edi
test eax, eax
jle 0x40ab09
cmp cl, 0x3a
je 0x40ab08
cmp byte [esi - 1], 0x3a
jne 0x40ab09
inc eax
push eax
push edi
mov edx, 0x1000
lea ecx, [ebp - 0x100c]
call fcn.0040a10a
test eax, eax
js 0x40ad08
push ebx
push ecx
lea edx, [ebp - 0x300c]
lea ecx, [ebp - 0x100c]
call fcn.0040a3a7
test eax, eax
je 0x40adcd
push 0
lea eax, [ebp - 0x300c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp byte [esi], 0
lea eax, [esi + 1]
jne 0x40aaad
mov esi, ebx
lea ecx, [ebp - 0x100c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ab64
sub ecx, edx
jne 0x40ab96
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ab74
sub ecx, edx
je 0x40ab96
mov al, byte [edi]
cmp al, 0x5c
je 0x40ab89
cmp al, 0x2f
jne 0x40ab96
mov byte [ebp - 0x100c], al
mov byte [ebp - 0x100b], 0
lea edx, [ebp - 0x100c]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x40ab9f
sub edx, ecx
mov ebx, edx
test edx, edx
jle 0x40abc8
cmp edx, 0xffe
ja 0x40adb9
lea ecx, [ebp + edx - 0x100d]
call fcn.0040a5b2
add edx, eax
and dword [ebp - 0x301c], 0
mov eax, 0x1000
and dword [ebp - 0x3014], 0
sub eax, edx
mov dword [ebp - 0x3020], eax
lea eax, [ebp - 0x100c]
add eax, edx
mov dword [ebp - 0x3018], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
add eax, dword [ebp - 0x3014]
push eax
push 0x403b60
push dword [ebp - 0x3020]
push dword [ebp - 0x3018]
call fcn.0040a17e
add esp, 0x10
test eax, eax
js 0x40adb9
push esi
push ecx
lea edx, [ebp - 0x300c]
lea ecx, [ebp - 0x100c]
call fcn.0040a3a7
test eax, eax
je 0x40adcd
push 0
push 0x4000100
push 1
push 0
push 1
push 0xc0000000
lea eax, [ebp - 0x300c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x40adad
call dword [sym.imp.msvcrt.dll__errno]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi], eax
call dword [sym.imp.msvcrt.dll__errno]
cmp dword [eax], 5
je 0x40ad19
cmp dword [eax], 0xb7
je 0x40ad2b
call dword [sym.imp.msvcrt.dll___doserrno]
mov edi, eax
call dword [sym.imp.msvcrt.dll__errno]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [edi]
lea eax, [ebp - 0x100c]
push dword [esi]
push eax
push 0x403bb8
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0x14
cmp ebx, 0x1000
jae 0x40ade2
mov byte [ebp + ebx - 0x100c], 0
call dword [sym.imp.msvcrt.dll___doserrno]
mov esi, eax
call dword [sym.imp.msvcrt.dll__errno]
push dword [esi]
mov ebx, dword [ebp - 0x3010]
push dword [eax]
lea eax, [ebp - 0x100c]
push eax
push 0x403c00
push 0x403c08
push ebx
call fcn.00409fd2
add esp, 0x18
jmp 0x40adcd
push edi
push 0x40211c
push 0x403310
push ebx
jmp 0x40adc5
mov eax, dword [ebp - 0x301c]
inc eax
mov dword [ebp - 0x301c], eax
cmp eax, 5
jge 0x40ad81
mov eax, dword [ebp - 0x3014]
inc eax
mov dword [ebp - 0x3014], eax
cmp eax, 0x3e7
jge 0x40ad4a
mov esi, dword [ebp - 0x3010]
jmp 0x40abf1
cmp ebx, 0x1000
jae 0x40ade2
lea ecx, [ebp - 0x100c]
mov byte [ebp + ebx - 0x100c], 0
mov ebx, dword [ebp - 0x3010]
push ecx
push eax
push 0x402168
push 0x403c1c
push ebx
call fcn.00409fd2
add esp, 0x14
jmp 0x40adcd
cmp ebx, 0x1000
jae 0x40ade2
lea eax, [ebp - 0x100c]
mov byte [ebp + ebx - 0x100c], 0
mov ebx, dword [ebp - 0x3010]
push eax
push 0x40211c
push 0x403b70
jmp 0x40ad13
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
inc eax
jmp 0x40adcf
push edi
push 0x40211c
push 0x403310
push esi
call fcn.00409fd2
add esp, 0x10
xor eax, eax
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040f060
mov esp, ebp
pop ebp
ret 4
call fcn.0040f1b9
int3