Function at 0x489b70
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4fc7e0
mov eax, dword fs:[0]
push eax
sub esp, 0x70
mov eax, dword [0x53a098]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 4], 0
lea ecx, [ebp + 8]
call fcn.00404e90
mov esi, eax
mov dword [ebp - 0x60], esi
cmp dword [esi + 0x10], 0
jne 0x489bbc
mov bl, 1
jmp 0x489e45
lea ecx, [ebp - 0x40]
call fcn.00406d40
mov byte [ebp - 4], 1
lea ecx, [ebp + 8]
call fcn.00404c10
test al, al
jne 0x489c4d
lea ecx, [ebp + 8]
call fcn.00404e90
push eax
mov dword [ebp - 0x44], eax
call fcn.004056d0
mov edx, eax
add esp, 4
cmp dword [edx + 0x14], 0x10
jb 0x489bf2
mov eax, dword [edx]
cmp dword [edx + 0x14], 0x10
mov ebx, eax
mov edi, edx
jb 0x489bfe
mov edi, dword [edx]
mov ecx, dword [edx + 0x10]
add ecx, edi
cmp ebx, ecx
je 0x489c14
cmp byte [eax], 0x5c
jne 0x489c0f
mov byte [eax], 0x2f
lea eax, [ebx + 1]
jmp 0x489bf2
mov eax, dword [ebp - 0x44]
mov ecx, dword [esi + 0x10]
dec ecx
cmp dword [eax + 0x10], ecx
jbe 0x489e82
cmp dword [eax + 0x14], 0x10
jb 0x489c2c
mov eax, dword [eax]
cmp byte [ecx + eax], 0x2f
je 0x489c4d
push 0x516504
call fcn.00405fd0
add esp, 4
lea ecx, [ebp + 8]
push eax
push 0x516504
call fcn.0042a750
cmp dword [esi + 0x14], 0x10
mov ebx, esi
jb 0x489c57
mov ebx, dword [esi]
mov eax, dword [esi + 0x10]
test eax, eax
je 0x489c74
push eax
push 0x2f
push ebx
call fcn.004c5be0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x489c74
sub edi, ebx
jmp 0x489c77
or edi, 0xffffffff
cmp edi, 0xffffffff
je 0x489e37
lea ecx, [ebp - 0x28]
call fcn.00404e90
mov ebx, eax
nop word [eax + eax]
push edi
push 0
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp + 8]
call fcn.00418340
mov byte [ebp - 4], 2
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0x58], esi
test esi, esi
je 0x489def
lea ecx, [ebp - 0x7c]
call fcn.004059e0
lea ecx, [ebp - 0x7c]
call fcn.00404e90
cmp dword [ebx + 0x14], 0x10
mov ecx, ebx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x4c], ebx
jb 0x489cd4
mov ecx, dword [ebx]
mov dword [ebp - 0x4c], ecx
cmp esi, 0x10
jae 0x489cf4
push 0x10
push ecx
push eax
call fcn.00405ff0
mov eax, dword [ebp - 0x48]
add esp, 0xc
mov dword [eax + 0x14], 0xf
jmp 0x489da4
lea ecx, [ebp - 0x7c]
call fcn.00401eb0
mov dword [ebp - 0x50], eax
mov eax, esi
or eax, 0xf
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.00405450
add esp, 8
mov eax, dword [eax]
mov dword [ebp - 0x5c], eax
lea ecx, [eax + 1]
cmp ecx, 0x1000
jb 0x489d52
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.004c2d96
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x489e87
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x489d63
test ecx, ecx
je 0x489d61
push ecx
call fcn.004c2d96
add esp, 4
jmp 0x489d63
xor eax, eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x48]
push eax
call fcn.004056d0
push eax
push 4
call fcn.00401ea0
mov esi, eax
lea eax, [ebp - 0x44]
push eax
call fcn.004056d0
mov eax, dword [eax]
mov dword [esi], eax
mov esi, dword [ebp - 0x58]
lea eax, [esi + 1]
push eax
push dword [ebp - 0x4c]
push dword [ebp - 0x44]
call fcn.00405ff0
mov eax, dword [ebp - 0x48]
add esp, 0x1c
mov ecx, dword [ebp - 0x5c]
mov dword [eax + 0x14], ecx
mov dword [eax + 0x10], esi
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x7c]
call fcn.00404e90
cmp dword [eax + 0x14], 0x10
jb 0x489dbb
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryA]
mov esi, eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x7c]
call fcn.00404e30
test esi, esi
jne 0x489def
cmp dword [ebx + 0x14], 0x10
mov eax, ebx
jb 0x489dde
mov eax, dword [ebx]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x489e72
mov eax, dword [ebp - 0x60]
inc edi
mov esi, eax
cmp dword [eax + 0x14], 0x10
jb 0x489dfd
mov esi, dword [eax]
mov eax, dword [eax + 0x10]
cmp edi, eax
jae 0x489e1f
sub eax, edi
push eax
lea eax, [esi + edi]
push 0x2f
push eax
call fcn.004c5be0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x489e1f
sub edi, esi
jmp 0x489e22
or edi, 0xffffffff
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28]
call fcn.00404e30
cmp edi, 0xffffffff
jne 0x489c90
mov bl, 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x40]
call fcn.00404e30
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.00404e30
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004c2d85
mov esp, ebp
pop ebp
ret
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28]
call fcn.00404e30
xor bl, bl
jmp 0x489e39
call fcn.00408940
call fcn.004cb4bf
int3