Function at 0x402940
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40ec20
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
mov eax, dword [0x413090]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, 0xf
xor edi, edi
mov eax, ecx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x44], 0
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402981
sub eax, esi
push eax
push ecx
lea ecx, [ebp - 0x48]
call fcn.00402000
mov dword [ebp - 4], edi
mov eax, dword [ebp - 0x34]
lea esi, [eax - 1]
cmp esi, eax
jbe 0x4029a6
call fcn.004055b0
cmp dword [ebp - 0x30], 0x10
mov eax, dword [ebp - 0x44]
jae 0x4029b2
lea eax, [ebp - 0x44]
cmp byte [eax + esi], 0x5c
je 0x4029c2
push 0x5c
lea esi, [ebp - 0x48]
call fcn.00403780
push 4
call fcn.00404b5b
add esp, 4
cmp eax, edi
je 0x4029d7
lea ecx, [ebp - 0x64]
mov dword [eax], ecx
jmp 0x4029d9
xor eax, eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], edi
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x34]
mov byte [ebp - 0x49], 0
cmp edi, eax
jae 0x402aee
jbe 0x402a0c
call fcn.004055b0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x44]
mov esi, 0x10
cmp dword [ebp - 0x30], esi
jae 0x402a1c
lea ecx, [ebp - 0x44]
cmp byte [ecx + edi], 0x5c
je 0x402a87
cmp edi, eax
jbe 0x402a2b
call fcn.004055b0
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x30], esi
jae 0x402a36
lea eax, [ebp - 0x44]
mov dl, byte [eax + edi]
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 0x68], dl
mov edx, dword [ebp - 0x14]
mov eax, ecx
cmp edx, esi
jae 0x402a4b
lea eax, [ebp - 0x28]
mov ebx, dword [ebp - 0x18]
lea esi, [eax + ebx]
test esi, esi
je 0x402a73
mov eax, ecx
cmp edx, 0x10
jae 0x402a5f
lea eax, [ebp - 0x28]
cmp eax, esi
ja 0x402a73
mov eax, ecx
cmp edx, 0x10
jae 0x402a6d
lea eax, [ebp - 0x28]
add eax, ebx
cmp esi, eax
jbe 0x402a78
call fcn.004055b0
push esi
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x68]
push eax
lea ecx, [ebp - 0x78]
push ecx
jmp 0x402ada
lea edx, [ebp - 0x2c]
push edx
lea ebx, [ebp - 0x64]
call fcn.00403830
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, ebx
cmp edx, esi
jae 0x402aa2
lea eax, [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
lea esi, [eax + ecx]
test esi, esi
je 0x402aca
mov eax, ebx
cmp edx, 0x10
jae 0x402ab6
lea eax, [ebp - 0x28]
cmp eax, esi
ja 0x402aca
mov eax, ebx
cmp edx, 0x10
jae 0x402ac4
lea eax, [ebp - 0x28]
add eax, ecx
cmp esi, eax
jbe 0x402acf
call fcn.004055b0
push esi
lea eax, [ebp - 0x2c]
push eax
push 0x5c
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x2c]
call fcn.004038e0
mov eax, dword [ebp - 0x34]
inc edi
cmp edi, eax
jb 0x402a0c
mov esi, dword [ebp - 0x58]
cmp esi, dword [ebp - 0x54]
jbe 0x402afb
call fcn.004055b0
mov edi, dword [ebp - 0x64]
mov edi, edi
mov ebx, dword [ebp - 0x54]
cmp dword [ebp - 0x58], ebx
jbe 0x402b0d
call fcn.004055b0
test edi, edi
je 0x402b16
cmp edi, dword [ebp - 0x64]
je 0x402b1b
call fcn.004055b0
cmp esi, ebx
je 0x402b73
test edi, edi
jne 0x402b3f
call fcn.004055b0
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x402b34
call fcn.004055b0
cmp dword [esi + 0x18], 0x10
jb 0x402b43
mov eax, dword [esi + 4]
jmp 0x402b46
mov eax, dword [edi]
jmp 0x402b2a
lea eax, [esi + 4]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
setne byte [ebp - 0x49]
test edi, edi
jne 0x402b6f
call fcn.004055b0
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x402b6a
call fcn.004055b0
add esi, 0x1c
jmp 0x402b00
mov eax, dword [edi]
jmp 0x402b60
cmp dword [ebp - 0x14], 0x10
jb 0x402b85
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.00404a67
add esp, 4
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
test esi, esi
je 0x402be0
mov edi, dword [ebp - 0x54]
cmp esi, edi
je 0x402bd4
add esi, 0x18
cmp dword [esi], 0x10
jb 0x402bb9
mov edx, dword [esi - 0x14]
push edx
call fcn.00404a67
add esp, 4
mov dword [esi], 0xf
mov dword [esi - 4], 0
mov byte [esi - 0x14], 0
add esi, 0x1c
lea eax, [esi - 0x18]
cmp eax, edi
jne 0x402ba8
mov ecx, dword [ebp - 0x58]
push ecx
call fcn.00404a67
add esp, 4
mov edx, dword [ebp - 0x64]
xor eax, eax
push edx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
call fcn.00404a67
add esp, 4
cmp dword [ebp - 0x30], 0x10
jb 0x402c09
mov eax, dword [ebp - 0x44]
push eax
call fcn.00404a67
add esp, 4
mov al, byte [ebp - 0x49]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040485c
mov esp, ebp
pop ebp
ret