Function at 0x463780
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56a998
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push esi
push edi
mov eax, dword [0x5bc324]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ecx]
sub eax, 0x10
push eax
call fcn.0042b060
add esp, 4
lea edi, [eax + 0x10]
mov dword [ebp - 0x18], edi
mov dword [ebp - 4], 0
mov ebx, dword [edi - 0xc]
lea eax, [ebx - 1]
test eax, eax
js 0x463a29
cmp eax, ebx
jg 0x463a29
cmp word [edi + eax*2], 0x5c
je 0x463823
lea esi, [ebx + 1]
test esi, esi
js 0x463a29
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, esi
or eax, ecx
jge 0x463808
push esi
lea ecx, [ebp - 0x18]
call fcn.0042b0d0
mov edi, dword [ebp - 0x18]
mov eax, 0x5c
mov word [edi + ebx*2], ax
cmp esi, dword [edi - 8]
jg 0x463a29
xor eax, eax
mov dword [edi - 0xc], esi
mov word [edi + esi*2], ax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov byte [ebp - 4], 1
call fcn.00422040
mov ecx, eax
test ecx, ecx
je 0x463a33
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x463a3d
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
lea esi, [eax + 0x10]
mov dword [ebp - 0x14], esi
mov byte [ebp - 4], 2
xor ecx, ecx
mov edx, dword [edi - 0xc]
mov byte [ebp - 0xd], 0
mov dword [ebp - 0x1c], ecx
test edx, edx
jle 0x463969
test ecx, ecx
js 0x463a29
cmp ecx, edx
jg 0x463a29
movzx ebx, word [edi + ecx*2]
cmp ebx, 0x5c
je 0x4638dc
cmp ecx, edx
jg 0x463a29
mov eax, ebx
mov dword [ebp - 0x24], eax
mov eax, dword [esi - 0xc]
mov dword [ebp - 0x20], eax
lea ebx, [eax + 1]
test ebx, ebx
js 0x463a29
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, ebx
or eax, ecx
jge 0x4638d4
push ebx
lea ecx, [ebp - 0x14]
call fcn.0042b0d0
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
jmp 0x463941
mov ebx, dword [ebp - 0x2c]
cmp dword [ebp - 0x28], ebx
je 0x4638fb
lea eax, [esi - 0x10]
push eax
call fcn.0042b060
add eax, 0x10
add esp, 4
mov dword [ebx], eax
add dword [ebp - 0x2c], 4
jmp 0x46390b
lea eax, [ebp - 0x14]
push eax
push ebx
lea ecx, [ebp - 0x30]
call fcn.0042dbe0
mov esi, dword [ebp - 0x14]
mov eax, dword [esi - 0xc]
mov dword [ebp - 0x24], eax
lea ebx, [eax + 1]
test ebx, ebx
js 0x463a29
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, ebx
or eax, ecx
jge 0x463939
push ebx
lea ecx, [ebp - 0x14]
call fcn.0042b0d0
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov ecx, 0x5c
mov word [esi + eax*2], cx
cmp ebx, dword [esi - 8]
jg 0x463a29
mov ecx, dword [ebp - 0x1c]
xor eax, eax
mov dword [esi - 0xc], ebx
inc ecx
mov word [esi + ebx*2], ax
mov edx, dword [edi - 0xc]
mov dword [ebp - 0x1c], ecx
cmp ecx, edx
jl 0x463880
mov edi, dword [ebp - 0x30]
cmp edi, dword [ebp - 0x2c]
je 0x46398b
mov ebx, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0
push dword [edi]
call ebx
test eax, eax
setne byte [ebp - 0xd]
add edi, 4
cmp edi, dword [ebp - 0x2c]
jne 0x463977
or edi, 0xffffffff
mov byte [ebp - 4], 1
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
test eax, eax
jg 0x4639d0
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x463a44
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x463a44
push 0
push dword [ecx + 4]
call ebx
lea ecx, [ebp - 0x30]
call fcn.00429d60
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], edi
dec edi
test edi, edi
jg 0x463a14
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x463a48
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x463a48
push 0
push dword [edx + 4]
call ebx
mov al, byte [ebp - 0xd]
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.004213b0
push 0x80004005
call fcn.004213b0
call edx
jmp 0x463862
call edx
jmp 0x4639d0
mov ecx, edx
call esi
jmp 0x463a14