Function at 0x40a1a0
Capabilities:
Create directory

Disassembly:
sub esp, 0x450
mov eax, dword [0x45e088]
xor eax, esp
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x458]
lea ecx, [esp + 0x23c]
push ebx
push ebp
mov ebp, dword [esp + 0x45c]
push esi
push edi
mov dword [esp + 0x248], ecx
xor ecx, ecx
push ebp
mov word [esp + 0x250], cx
lea ecx, [esp + 0x23c]
push eax
mov dword [esp + 0x240], 0
mov dword [esp + 0x244], 0
mov dword [esp + 0x248], 2
mov dword [esp + 0x24c], 0x108
call fcn.004138a0
test al, al
je 0x40a4a6
mov ebx, dword [esp + 0x46c]
test bl, 8
je 0x40a23a
push 0
lea ecx, [esp + 0x23c]
call fcn.00412ba0
mov esi, dword [esp + 0x248]
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov dword [esp + 0x10], esi
test bl, 1
je 0x40a35e
lea eax, [esp + 0x28]
mov dword [esp + 0x14], 0
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x14]
push 0xffffffffffffffff
xor eax, eax
mov dword [esp + 0x1c], 0
push esi
mov dword [esp + 0x24], 2
mov dword [esp + 0x28], 0x108
mov word [esp + 0x30], ax
call fcn.00413140
test al, al
je 0x40a3ce
mov esi, dword [esp + 0x24]
mov eax, 0x5c
test esi, esi
je 0x40a2cb
cmp ax, word [esi]
jne 0x40a2cb
cmp ax, word [esi + 2]
jne 0x40a2cb
push eax
lea eax, [esi + 4]
push eax
call fcn.004221a4
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x40a2cb
sub ebx, esi
add ebx, 2
sar ebx, 1
jmp 0x40a2cd
xor ebx, ebx
lea eax, [esi + ebx*2]
push 0x5c
push eax
call fcn.004221a4
mov edi, eax
add esp, 8
cmp edi, esi
jbe 0x40a2fd
cmp word [edi - 2], 0x3a
je 0x40a2ed
cmp ebx, 4
jbe 0x40a2fd
lea eax, [edi + 2]
push 0x5c
push eax
call fcn.004221a4
add esp, 8
mov edi, eax
mov ebx, dword [esp + 0x46c]
test edi, edi
je 0x40a34b
xor eax, eax
push eax
push esi
mov word [edi], ax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x40a397
test bl, 2
je 0x40a330
mov eax, dword [0x4600d8]
test eax, eax
je 0x40a330
push 0
push esi
push 5
push 8
call eax
mov eax, 0x5c
push eax
mov word [edi], ax
lea eax, [edi + 2]
push eax
call fcn.004221a4
add esp, 8
mov edi, eax
test edi, edi
jne 0x40a308
lea ecx, [esp + 0x14]
call fcn.0040be80
mov esi, dword [esp + 0x10]
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test esi, esi
je 0x40a41d
mov ecx, esi
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40a370
sub ecx, edx
sar ecx, 1
cmp ecx, 3
jbe 0x40a41d
push 0
push esi
call edi
test eax, eax
setne al
jmp 0x40a426
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
cmp eax, 0xb7
jne 0x40a3fe
call fcn.0040fa30
add esp, 4
test al, al
jne 0x40a330
test bl, 4
je 0x40a3de
push 4
push ebp
push esi
call fcn.0040b240
add esp, 0xc
test al, al
jne 0x40a347
lea ecx, [esp + 0x14]
xor bl, bl
call fcn.0040be80
jmp 0x40a4a8
mov eax, dword [ebp]
push esi
push str.__s__could_not_be_created
push ebp
call dword [eax + 0x20]
add esp, 0xc
lea ecx, [esp + 0x14]
mov bl, al
call fcn.0040be80
jmp 0x40a4a8
mov eax, dword [ebp]
push str.__s__could_not_be_created
push ebp
call dword [eax + 0x20]
add esp, 0xc
lea ecx, [esp + 0x14]
mov bl, al
call fcn.0040be80
jmp 0x40a4a8
push esi
call fcn.0040b590
add esp, 4
test al, al
jne 0x40a467
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40a496
push esi
call fcn.0040fa30
add esp, 4
test al, al
jne 0x40a47e
test bl, 4
je 0x40a482
push 4
push ebp
push esi
call fcn.0040b240
add esp, 0xc
test al, al
je 0x40a4a6
push 0
push esi
call edi
test eax, eax
setne al
test al, al
je 0x40a496
test bl, 2
je 0x40a47e
mov eax, dword [0x4600d8]
test eax, eax
je 0x40a47e
push 0
push esi
push 5
push 8
call eax
mov bl, 1
jmp 0x40a4a8
mov eax, dword [ebp]
push esi
push str.__s__could_not_be_created
push ebp
call dword [eax + 0x20]
add esp, 0xc
mov bl, al
jmp 0x40a4a8
mov eax, dword [ebp]
push esi
push str.__s__could_not_be_created
push ebp
call dword [eax + 0x20]
add esp, 0xc
xor bl, bl
lea ecx, [esp + 0x238]
call fcn.0040be80
mov ecx, dword [esp + 0x45c]
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00420cb2
add esp, 0x450
ret