Function at 0x4045b0
Capabilities:
Create directory

Disassembly:
sub esp, 0x22c
push ebx
mov ebx, dword [esp + 0x238]
push ebp
push esi
mov al, byte [ebx]
push edi
cmp al, 0x7c
jne 0x4046ea
inc ebx
push 0x5c
push ebx
call fcn.00409ea6
mov ebp, dword [esp + 0x248]
add esp, 8
test eax, eax
je 0x4046d9
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x34]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x5c
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x38]
push ecx
call fcn.00409ea6
mov byte [eax], 0
lea edx, [esp + 0x18]
lea eax, [esp + 0x3c]
push edx
push eax
call fcn.00413c8e
add esp, 0x10
test eax, eax
jne 0x404798
mov ecx, dword [esp + 0x16]
and ecx, 0x4000
cmp cx, 0x4000
jne 0x404798
or ecx, 0xffffffff
mov edi, ebp
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x138]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x138]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov edi, 0x4170dc
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x13c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x38]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x13c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0
push ebp
push ebx
call fcn.004037d0
add esp, 0xc
jmp 0x404794
push 0x41787c
push ebx
call fcn.0040a355
add esp, 8
test eax, eax
je 0x404798
push eax
call fcn.0040a21d
mov edi, dword [esp + 0x244]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x38]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x38]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov edi, 0x4170dc
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea edx, [esp + 0x3c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea eax, [esp + 0x3c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
push ebx
call fcn.004034e0
add esp, 0x10
test eax, eax
je 0x4047a5
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x22c
ret
call fcn.004038d0
test eax, eax
push ebx
je 0x4047b6
push 0x418224
jmp 0x4047bb
push 0x4181d4
call fcn.00406700
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x22c
ret