Function at 0x40a675
Capabilities:
Create directory

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x120
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 - 0x114], edx
mov dword [ebp - 0x110], esi
mov eax, edi
mov bl, byte [edi]
test bl, bl
je 0x40a6d9
cmp bl, 0x5c
je 0x40a6d3
cmp bl, 0x2f
je 0x40a6d3
cmp bl, 0x3a
jne 0x40a6c2
mov cl, byte [eax + 1]
cmp cl, 0x5c
je 0x40a6c2
cmp cl, 0x2f
jne 0x40a6d3
push 0
push eax
push 0
call dword [sym.imp.USER32.dll_CharNextExA]
mov bl, byte [eax]
test bl, bl
jne 0x40a6a6
mov edx, dword [ebp - 0x114]
mov byte [ebp - 0x10c], 0
cmp byte [eax], 0
jne 0x40a6e9
test edx, edx
jne 0x40a6eb
mov eax, edi
cmp byte [eax], 0
je 0x40a78b
mov ebx, dword [ebp - 0x114]
mov cl, byte [eax]
test cl, cl
je 0x40a785
mov esi, eax
cmp cl, 0x5c
je 0x40a733
cmp cl, 0x2f
je 0x40a733
cmp cl, 0x3a
jne 0x40a720
mov al, byte [esi + 1]
cmp al, 0x5c
je 0x40a720
cmp al, 0x2f
jne 0x40a733
push 0
push esi
push 0
call dword [sym.imp.USER32.dll_CharNextExA]
mov esi, eax
mov cl, byte [esi]
test cl, cl
jne 0x40a706
mov cl, byte [esi]
test cl, cl
jne 0x40a73d
test ebx, ebx
jne 0x40a779
mov eax, esi
sub eax, edi
test eax, eax
jle 0x40a751
cmp cl, 0x3a
je 0x40a750
cmp byte [esi - 1], 0x3a
jne 0x40a751
inc eax
push eax
push edi
mov edx, 0x100
lea ecx, [ebp - 0x10c]
call fcn.0040a10a
test eax, eax
js 0x40a9ef
lea eax, [ebp - 0x10c]
push eax
call dword [sym.imp.msvcrt.dll__mkdir]
pop ecx
cmp byte [esi], 0
lea eax, [esi + 1]
jne 0x40a6fa
mov esi, dword [ebp - 0x110]
lea ecx, [ebp - 0x10c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a794
sub ecx, edx
jne 0x40a7c6
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a7a4
sub ecx, edx
je 0x40a7c6
mov al, byte [edi]
cmp al, 0x5c
je 0x40a7b9
cmp al, 0x2f
jne 0x40a7c6
mov byte [ebp - 0x10c], al
mov byte [ebp - 0x10b], 0
lea edx, [ebp - 0x10c]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x40a7cf
sub edx, ecx
mov ebx, edx
test edx, edx
jle 0x40a7f8
cmp edx, 0xfe
ja 0x40a918
lea ecx, [ebp + edx - 0x10d]
call fcn.0040a5b2
add edx, eax
and dword [ebp - 0x114], 0
mov eax, 0x100
sub eax, edx
xor esi, esi
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x10c]
add eax, edx
mov dword [ebp - 0x118], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
add eax, esi
push eax
push 0x403b60
push dword [ebp - 0x11c]
push dword [ebp - 0x118]
call fcn.0040a17e
add esp, 0x10
test eax, eax
js 0x40a9ef
push 0x180
lea eax, [ebp - 0x10c]
push 0x502
push eax
call dword [sym.imp.msvcrt.dll__open]
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40a9d4
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
sub eax, 0xd
je 0x40a929
sub eax, 4
je 0x40a93b
sub eax, 5
jne 0x40a981
call dword [sym.imp.msvcrt.dll___doserrno]
cmp dword [eax], 0x12f
je 0x40a93b
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 - 0x10c]
push dword [esi]
push eax
push 0x403bb8
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0x14
cmp ebx, 0x100
jae 0x40aa1d
mov byte [ebp + ebx - 0x10c], 0
call dword [sym.imp.msvcrt.dll___doserrno]
mov esi, eax
call dword [sym.imp.msvcrt.dll__errno]
push dword [esi]
push dword [eax]
lea eax, [ebp - 0x10c]
push eax
push 0x403c00
push 0x403c08
push dword [ebp - 0x110]
call fcn.00409fd2
add esp, 0x18
jmp 0x40aa08
push edi
push 0x40211c
push 0x403310
push esi
jmp 0x40aa00
mov eax, dword [ebp - 0x114]
inc eax
mov dword [ebp - 0x114], eax
cmp eax, 5
jge 0x40a9b1
inc esi
cmp esi, 0x3e7
jl 0x40a81c
cmp ebx, 0x100
jae 0x40aa1d
lea eax, [ebp - 0x10c]
mov byte [ebp + ebx - 0x10c], 0
push eax
push esi
push 0x402168
push 0x403c1c
push dword [ebp - 0x110]
call fcn.00409fd2
add esp, 0x14
jmp 0x40aa08
dec eax
sub eax, 1
jne 0x40a89e
cmp ebx, 0x100
jae 0x40aa1d
mov byte [ebp + ebx - 0x10c], al
lea eax, [ebp - 0x10c]
push eax
push 0x40211c
push 0x403b98
jmp 0x40a9fa
cmp ebx, 0x100
jae 0x40aa1d
lea eax, [ebp - 0x10c]
mov byte [ebp + ebx - 0x10c], 0
push eax
push 0x40211c
push 0x403b70
jmp 0x40a9fa
push eax
call dword [sym.imp.msvcrt.dll__close]
pop ecx
lea eax, [ebp - 0x10c]
push eax
call dword [sym.imp.msvcrt.dll__unlink]
xor eax, eax
pop ecx
inc eax
jmp 0x40aa0a
push edi
push 0x40211c
push 0x403310
push dword [ebp - 0x110]
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