Function at 0x412b21
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [0x44200c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, edx
mov dword [ebp - 0x20], eax
xor edx, edx
mov dword [ebp - 0x1c], edi
mov dword [eax], edx
test ecx, ecx
je 0x412df2
cmp word [ecx], dx
je 0x412df2
call fcn.00412a21
mov esi, eax
test esi, esi
je 0x412df2
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
call ebx
add eax, eax
mov dword [ebp - 0x18], 0x2f
push 0x5c
pop edx
lea eax, [eax + esi]
je 0x412b99
movzx ecx, word [eax]
cmp cx, word [ebp - 0x18]
je 0x412b94
cmp cx, dx
je 0x412b94
sub eax, 2
cmp eax, esi
jne 0x412b7d
jmp 0x412b99
xor ecx, ecx
mov word [eax], cx
test edi, edi
je 0x412bcf
push esi
call ebx
cmp eax, 0xf8
jl 0x412bcf
push 4
push str.__
push esi
call fcn.0042588d
add esp, 0xc
test eax, eax
je 0x412bcf
mov ecx, esi
call fcn.00412fef
test eax, eax
je 0x412bcf
push esi
mov esi, eax
call fcn.004243e2
pop ecx
push esi
call fcn.004254bd
and dword [ebp - 0x10], 0
pop ecx
mov ecx, dword [0x43cce4]
mov dword [ebp - 0xc], ecx
mov cx, word [0x43cce8]
push esi
mov dword [ebp - 0x18], eax
mov word [ebp - 8], cx
call ebx
mov ecx, 0x104
cmp eax, ecx
jle 0x412c02
push esi
call ebx
mov ecx, eax
lea eax, [ecx + 1]
push eax
push 2
call fcn.004243d7
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x412df2
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x18]
jmp 0x412d8f
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne 0x412d17
movzx eax, word [esi]
push 0x5c
pop ecx
cmp ax, cx
jne 0x412d01
cmp word [esi + 2], cx
jne 0x412cfa
cmp word [esi + 4], 0x3f
push 0x43ccec
push edi
jne 0x412ce7
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatW]
push edi
call ebx
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
push 0
call fcn.004259a0
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
je 0x412db0
push 0x43bf8c
push edi
call ebx
push dword [ebp - 0x14]
push edi
call ebx
push 3
push 0x43ccf4
push dword [ebp - 0x14]
call fcn.0042588d
add esp, 0xc
test eax, eax
jne 0x412d85
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
push 0
call fcn.004259a0
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
je 0x412d85
push 0x43bf8c
push edi
call ebx
push dword [ebp - 0x14]
push edi
call ebx
jmp 0x412d85
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
jmp 0x412d85
push 0x43bf8c
jmp 0x412d0e
push 0x2f
pop ecx
cmp ax, cx
jne 0x412d23
push 0x43ccfc
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
jmp 0x412d23
push 0x43bf8c
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push edi
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x412d85
push eax
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x412d85
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 3
je 0x412d54
cmp eax, 0xce
jne 0x412db0
cmp dword [ebp - 0x1c], 0
je 0x412db0
mov ecx, edi
call fcn.00412fef
mov ebx, eax
test ebx, ebx
je 0x412d85
push ebx
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x412d85
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x412da3
push ebx
call fcn.004243e2
pop ecx
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
push 0
call fcn.004259a0
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x412c29
jmp 0x412db0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
call fcn.004243e2
pop ecx
push esi
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x412dd4
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ebx, ebx
mov ecx, 0xa0000034
test eax, eax
cmove eax, ecx
mov ecx, dword [ebp - 0x20]
mov dword [ecx], eax
jmp 0x412dd7
xor ebx, ebx
inc ebx
push dword [ebp - 0x18]
call fcn.004243e2
push esi
call fcn.004243e2
push edi
call fcn.004243e2
add esp, 0xc
mov eax, ebx
jmp 0x412df4
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041d487
leave
ret