Function at 0x401050
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x528000
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x573790]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [ebp - 4], ebx
mov esi, dword [ebp + 8]
mov ecx, dword [esi - 0xc]
cmp ecx, 2
jge 0x4010bb
or edi, 0xffffffff
mov dword [ebp - 4], edi
lea eax, [esi - 0x10]
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edi
dec edi
test edi, edi
jg 0x4010a7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ecx - 1]
cmp eax, ebx
jl 0x4012a3
cmp eax, ecx
jg 0x4012a3
or edi, 0xffffffff
cmp byte [eax + esi], 0x5c
jne 0x401118
push eax
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [ebp + 8]
call fcn.00407150
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 1
call fcn.00408950
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x401112
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [ebp + 8]
mov ecx, dword [esi - 0xc]
cmp ecx, ebx
jle 0x40108b
push ecx
lea edx, [ebp + 8]
cmp ecx, 3
mov dword [ebp - 0x14], esp
mov ecx, esp
push edx
jg 0x40114e
call fcn.004085a0
call section..text
add esp, 4
mov dword [ebp - 4], edi
cmp eax, ebx
mov eax, dword [ebp + 8]
jne 0x401165
add eax, 0xfffffff0
jmp 0x401091
call fcn.004085a0
call section..text
add esp, 4
cmp eax, ebx
je 0x401195
mov dword [ebp - 4], edi
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edi
dec edi
test edi, edi
jg 0x40117e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.0040e7cc
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4011af
push 0x80004005
call fcn.004088b0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp + 8]
push 0x5c
push ecx
call fcn.00501193
add esp, 8
cmp eax, ebx
jne 0x4011d8
mov eax, edi
jmp 0x4011db
sub eax, dword [ebp + 8]
push eax
lea edx, [ebp - 0x14]
push edx
lea ecx, [ebp + 8]
call fcn.00407150
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 3
call fcn.00408950
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edi
dec edi
test edi, edi
jg 0x401215
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x10]
cmp dword [ecx - 0xc], ebx
jg 0x401241
lea ecx, [ebp - 0x10]
call fcn.004089e0
lea ecx, [ebp + 8]
call fcn.004089e0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ecx
lea edx, [ebp - 0x10]
mov dword [ebp - 0x14], esp
mov ecx, esp
push edx
call fcn.004085a0
call fcn.00401050
add esp, 4
cmp eax, ebx
je 0x40121d
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x20]
push eax
push ecx
mov dword [ebp - 0x20], 0xc
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
lea esi, [eax - 1]
neg esi
lea ecx, [ebp - 0x10]
sbb esi, esi
call fcn.004089e0
lea ecx, [ebp + 8]
call fcn.004089e0
lea eax, [esi + 1]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.004088b0
int3