Function at 0x40931c
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb8
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x74], 0x454964
mov dword [esp], eax
mov dword [ebp - 0x70], 0x455b76
mov dword [ebp - 0x6c], ebp
mov dword [ebp - 0x68], 0x409633
mov dword [ebp - 0x64], esp
call fcn.00442d0b
mov eax, dword [ebp + 8]
or dword [ebp - 0x88], 0xffffffff
mov dword [esp], eax
call fcn.0040af13
cmp eax, 0xffffffff
je 0x40936d
test al, 0x10
jne 0x409621
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0040cf2a
mov byte [ebp - 0x91], al
test al, al
jne 0x40962a
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0040cfcc
lea ecx, [ebp - 0x58]
or dword [ebp - 0x88], 0xffffffff
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00404f50
lea ecx, [ebp - 0x58]
push eax
call fcn.004055ea
test eax, eax
js 0x4093d5
mov ecx, dword [ebp - 0x54]
lea edx, [ecx - 1]
cmp edx, eax
jne 0x4093d5
dec ecx
je 0x409610
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x54], edx
and word [eax + edx*2], 0
mov dword [ebp - 0x88], 1
lea eax, [ebp - 0x58]
lea ecx, [ebp - 0x4c]
mov dword [esp], eax
call fcn.00405020
mov eax, dword [ebp - 0x54]
push ecx
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x58]
cmp byte [0x45f024], 0
mov dword [ebp - 0x98], eax
jne 0x40945c
mov edx, dword [ebp - 0x98]
lea eax, [ebp - 0x40]
mov dword [ebp - 0x88], 2
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00405c67
mov eax, dword [ebp - 0x40]
and dword [esp + 4], 0
mov dword [ebp - 0x88], 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push edx
push edx
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x40]
call fcn.00408c0a
cmp dword [ebp - 0xa0], 0
jmp 0x40947e
mov eax, dword [ebp - 0x98]
and dword [esp + 4], 0
mov dword [ebp - 0x88], 2
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push ecx
test eax, eax
push ecx
jne 0x4095f1
mov dword [ebp - 0x88], 2
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x409509
lea ecx, [ebp - 0x40]
call fcn.0040a806
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x88], 2
call fcn.00404ec0
mov eax, dword [ebp - 0x98]
and dword [esp + 4], 0
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x88], 3
mov dword [esp], eax
call fcn.0040b0da
push edx
push edx
mov byte [ebp - 0x98], al
test al, al
je 0x4094f4
mov al, byte [ebp - 0x20]
shr al, 4
mov byte [ebp - 0x98], al
and byte [ebp - 0x98], 1
mov eax, dword [ebp - 0x18]
call fcn.00408bf4
cmp byte [ebp - 0x98], 0
jne 0x4095f1
mov dword [ebp - 0x88], 2
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x409606
lea ecx, [ebp - 0x58]
call fcn.004055ea
mov dword [ebp - 0x90], eax
test eax, eax
jle 0x409606
dec eax
jne 0x409557
mov eax, dword [ebp - 0x58]
mov ax, word [eax]
cmp ax, 0x5c
je 0x409606
cmp ax, 0x2f
je 0x409606
mov eax, dword [ebp - 0x90]
inc eax
cmp dword [ebp - 0x9c], eax
jae 0x409606
mov eax, dword [ebp - 0x90]
cmp eax, dword [ebp - 0x54]
jae 0x4093f7
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x58]
and word [eax + edx*2], 0
jmp 0x4093f7
mov edx, dword [ebp - 0x90]
lea eax, [eax + edx*2 + 2]
mov dword [esp], eax
call fcn.0040c9d5
mov edx, dword [ebp - 0x90]
lea edx, [edx + eax + 1]
mov dword [ebp - 0x90], edx
test eax, eax
jns 0x4095be
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x90]
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x88], 2
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp], eax
call fcn.00405240
push eax
push eax
mov eax, dword [ebp - 0x58]
mov dword [esp], eax
call fcn.0040925c
test al, al
je 0x409606
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x90]
cmp dword [ebp - 0x48], edx
jg 0x40958f
mov byte [ebp - 0x91], 1
mov eax, dword [ebp - 0x4c]
call fcn.00408bf4
jmp 0x409617
mov byte [ebp - 0x91], 1
mov eax, dword [ebp - 0x58]
call fcn.00408bf4
jmp 0x40968f
mov byte [ebp - 0x91], 1
jmp 0x40968f
mov byte [ebp - 0x91], 0
jmp 0x40968f
lea eax, [ebp - 0x8c]
mov dword [esp], eax
call fcn.00442d61
mov al, byte [ebp - 0x91]
leave
ret