Function at 0x406bb4
Capabilities:
Delete directory
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd30
mov eax, 0x48ddbc
push ebx
push esi
push edi
call fcn.004696b8
mov dword [ebp - 0x1b0], 1
lea edx, [ebp + 8]
lea eax, [ebp + 8]
call fcn.00474b80
inc dword [ebp - 0x1b0]
xor edx, edx
mov word [ebp - 0x1bc], 8
mov word [ebp - 0x1bc], 0x14
mov dword [ebp - 0x14c], edx
lea ecx, [ebp - 0x2d0]
inc dword [ebp - 0x1b0]
inc dword [ebp - 0x1b0]
mov word [ebp - 0x1bc], 8
push ecx
push 0x100
call sub.KERNEL32.DLL_GetCurrentDirectoryA
mov word [ebp - 0x1bc], 0x20
xor eax, eax
lea edx, [ebp - 0x15c]
mov dword [ebp - 0x15c], eax
push edx
inc dword [ebp - 0x1b0]
lea eax, [ebp + 8]
call fcn.00474e58
mov edx, eax
lea eax, [ebp + 8]
mov ecx, 1
call fcn.00474f88
lea edx, [ebp - 0x15c]
push edx
mov edx, 0x48b905
lea eax, [ebp - 0x160]
call fcn.00474b48
inc dword [ebp - 0x1b0]
lea edx, [ebp - 0x160]
pop eax
call fcn.00474e40
push eax
dec dword [ebp - 0x1b0]
lea eax, [ebp - 0x160]
mov edx, 2
call fcn.00474d44
dec dword [ebp - 0x1b0]
lea eax, [ebp - 0x15c]
mov edx, 2
call fcn.00474d44
pop ecx
test cl, cl
je 0x406d30
mov word [ebp - 0x1bc], 0x2c
mov edx, 0x48b907
lea eax, [ebp - 0x164]
call fcn.00474b48
inc dword [ebp - 0x1b0]
xor eax, eax
mov dword [ebp - 0x168], eax
lea eax, [ebp + 8]
inc dword [ebp - 0x1b0]
lea edx, [ebp - 0x164]
lea ecx, [ebp - 0x168]
call fcn.00474d9c
lea edx, [ebp - 0x168]
lea eax, [ebp + 8]
call fcn.00474d74
dec dword [ebp - 0x1b0]
lea eax, [ebp - 0x168]
mov edx, 2
call fcn.00474d44
dec dword [ebp - 0x1b0]
lea eax, [ebp - 0x164]
mov edx, 2
call fcn.00474d44
mov dl, 1
mov eax, dword [0x455850]
call fcn.00419be8
mov word [ebp - 0x1bc], 0x38
mov ebx, eax
lea eax, [ebp - 0x16c]
mov edx, 0x48b909
call fcn.00474b48
inc dword [ebp - 0x1b0]
xor eax, eax
mov dword [ebp - 0x170], eax
lea eax, [ebp + 8]
inc dword [ebp - 0x1b0]
lea edx, [ebp - 0x16c]
lea ecx, [ebp - 0x170]
call fcn.00474d9c
lea eax, [ebp - 0x170]
mov eax, dword [eax]
lea ecx, [ebp - 0x158]
mov edx, 0x3f
call fcn.0045f930
test eax, eax
mov edx, 2
sete al
and eax, 1
push eax
lea eax, [ebp - 0x170]
dec dword [ebp - 0x1b0]
call fcn.00474d44
dec dword [ebp - 0x1b0]
lea eax, [ebp - 0x16c]
mov edx, 2
call fcn.00474d44
pop ecx
test cl, cl
je 0x40710b
mov word [ebp - 0x1bc], 0x50
xor eax, eax
mov dword [ebp - 0x174], eax
lea ecx, [ebp - 0x174]
inc dword [ebp - 0x1b0]
lea edx, [ebp - 0x14c]
lea eax, [ebp + 8]
call fcn.00474d9c
mov edx, dword [ebp - 0x174]
test edx, edx
je 0x406e12
mov ecx, dword [ebp - 0x174]
jmp 0x406e17
mov ecx, 0x48b90d
push ecx
call sub.KERNEL32.DLL_SetCurrentDirectoryA
test eax, eax
mov edx, 2
setne al
and eax, 1
mov byte [ebp - 0x1cd], al
lea eax, [ebp - 0x174]
dec dword [ebp - 0x1b0]
call fcn.00474d44
mov word [ebp - 0x1bc], 0x44
lea ecx, [ebp - 0x2d0]
push ecx
call sub.KERNEL32.DLL_SetCurrentDirectoryA
mov al, byte [ebp - 0x1cd]
test al, al
jne 0x406e6f
mov edx, dword [ebp - 0x150]
cmp edx, 0x10
jne 0x4070ef
mov word [ebp - 0x1bc], 0x5c
mov edx, 0x48b90e
lea eax, [ebp - 0x178]
call fcn.00474b48
inc dword [ebp - 0x1b0]
lea edx, [ebp - 0x178]
lea eax, [ebp - 0x14c]
call fcn.00474e40
test al, al
lea eax, [ebp - 0x178]
setne cl
and ecx, 1
mov edx, 2
push ecx
dec dword [ebp - 0x1b0]
call fcn.00474d44
pop ecx
test ecx, ecx
je 0x4070ef
mov edx, 0x48b910
lea eax, [ebp - 0x17c]
call fcn.00474b48
inc dword [ebp - 0x1b0]
lea edx, [ebp - 0x17c]
lea eax, [ebp - 0x14c]
call fcn.00474e40
test al, al
lea eax, [ebp - 0x17c]
setne cl
and ecx, 1
mov edx, 2
push ecx
dec dword [ebp - 0x1b0]
call fcn.00474d44
pop ecx
test ecx, ecx
je 0x4070ef
mov word [ebp - 0x1bc], 0x68
xor eax, eax
mov dword [ebp - 0x180], eax
lea ecx, [ebp - 0x180]
inc dword [ebp - 0x1b0]
lea edx, [ebp - 0x14c]
lea eax, [ebp + 8]
call fcn.00474d9c
lea edx, [ebp - 0x180]
mov eax, ebx
mov edx, dword [edx]
call fcn.004578d8
dec dword [ebp - 0x1b0]
lea eax, [ebp - 0x180]
mov edx, 2
call fcn.00474d44
jmp 0x4070ef
mov word [ebp - 0x1bc], 0x74
xor ecx, ecx
mov dword [ebp - 0x184], ecx
lea ecx, [ebp - 0x184]
inc dword [ebp - 0x1b0]
lea edx, [ebp - 0x14c]
lea eax, [ebp + 8]
call fcn.00474d9c
mov eax, dword [ebp - 0x184]
test eax, eax
je 0x406fa8
mov edx, dword [ebp - 0x184]
jmp 0x406fad
mov edx, 0x48b913
push edx
call sub.KERNEL32.DLL_SetCurrentDirectoryA
test eax, eax
mov edx, 2
setne al
and eax, 1
mov byte [ebp - 0x1cd], al
lea eax, [ebp - 0x184]
dec dword [ebp - 0x1b0]
call fcn.00474d44
lea ecx, [ebp - 0x2d0]
push ecx
call sub.KERNEL32.DLL_SetCurrentDirectoryA
mov al, byte [ebp - 0x1cd]
test al, al
jne 0x406ffc
mov edx, dword [ebp - 0x150]
cmp edx, 0x10
jne 0x4070ef
mov word [ebp - 0x1bc], 0x80
mov edx, 0x48b914
lea eax, [ebp - 0x188]
call fcn.00474b48
inc dword [ebp - 0x1b0]
lea edx, [ebp - 0x188]
lea eax, [ebp - 0x14c]
call fcn.00474e40
test al, al
lea eax, [ebp - 0x188]
setne cl
and ecx, 1
mov edx, 2
push ecx
dec dword [ebp - 0x1b0]
call fcn.00474d44
pop ecx
test ecx, ecx
je 0x4070ef
mov edx, 0x48b916
lea eax, [ebp - 0x18c]
call fcn.00474b48
inc dword [ebp - 0x1b0]
lea edx, [ebp - 0x18c]
lea eax, [ebp - 0x14c]
call fcn.00474e40
test al, al
lea eax, [ebp - 0x18c]
setne cl
and ecx, 1
mov edx, 2
push ecx
dec dword [ebp - 0x1b0]
call fcn.00474d44
pop ecx
test ecx, ecx
je 0x4070ef
mov word [ebp - 0x1bc], 0x8c
xor eax, eax
mov dword [ebp - 0x190], eax
lea ecx, [ebp - 0x190]
inc dword [ebp - 0x1b0]
lea edx, [ebp - 0x14c]
lea eax, [ebp + 8]
call fcn.00474d9c
lea edx, [ebp - 0x190]
mov eax, ebx
mov edx, dword [edx]
call fcn.004578d8
dec dword [ebp - 0x1b0]
lea eax, [ebp - 0x190]
mov edx, 2
call fcn.00474d44
lea eax, [ebp - 0x158]
call fcn.0045f980
test eax, eax
je 0x406f6b
mov word [ebp - 0x1bc], 8
lea eax, [ebp - 0x158]
call fcn.0045f9a4
mov word [ebp - 0x1bc], 8
xor esi, esi
jmp 0x407175
mov eax, dword [ebp + 0xc]
xor edx, edx
push eax
mov eax, ebx
mov word [ebp - 0x1bc], 0x98
mov dword [ebp - 0x194], edx
mov edx, esi
inc dword [ebp - 0x1b0]
lea ecx, [ebp - 0x194]
mov edi, dword [eax]
call dword [edi + 0xc]
lea eax, [ebp - 0x194]
mov edx, dword [eax]
push edx
call fcn.00406bb4
add esp, 8
dec dword [ebp - 0x1b0]
lea eax, [ebp - 0x194]
mov edx, 2
call fcn.00474d44
inc esi
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x14]
cmp esi, eax
jl 0x407123
mov word [ebp - 0x1bc], 8
xor esi, esi
jmp 0x407282
mov word [ebp - 0x1bc], 0xa4
xor eax, eax
lea ecx, [ebp - 0x198]
mov dword [ebp - 0x198], eax
mov eax, ebx
inc dword [ebp - 0x1b0]
mov edx, esi
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x198]
test eax, eax
je 0x4071c8
mov edx, dword [ebp - 0x198]
jmp 0x4071cd
mov edx, 0x48b919
push edx
call sub.KERNEL32.DLL_RemoveDirectoryA
test eax, eax
mov edx, 2
sete al
and eax, 1
push eax
lea eax, [ebp - 0x198]
dec dword [ebp - 0x1b0]
call fcn.00474d44
pop ecx
test cl, cl
je 0x407281
mov word [ebp - 0x1bc], 0xb0
xor eax, eax
lea ecx, [ebp - 0x19c]
mov dword [ebp - 0x19c], eax
mov eax, ebx
inc dword [ebp - 0x1b0]
mov edx, esi
mov edi, dword [eax]
call dword [edi + 0xc]
lea edx, [ebp - 0x19c]
xor eax, eax
mov dword [ebp - 0x1a0], eax
lea ecx, [ebp - 0x1a0]
inc dword [ebp - 0x1b0]
mov eax, 0x48b91a
call fcn.00475018
lea edx, [ebp - 0x1a0]
mov eax, dword [ebp + 0xc]
mov edx, dword [edx]
call fcn.004578d8
dec dword [ebp - 0x1b0]
lea eax, [ebp - 0x1a0]
mov edx, 2
call fcn.00474d44
dec dword [ebp - 0x1b0]
lea eax, [ebp - 0x19c]
mov edx, 2
call fcn.00474d44
inc esi
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x14]
cmp esi, eax
jl 0x407190
mov esi, ebx
mov dword [ebp - 0x1a8], esi
test esi, esi
je 0x4072c7
mov eax, dword [esi]
mov dword [ebp - 0x1a4], eax
mov word [ebp - 0x1bc], 0xc8
mov edx, 3
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [eax]
call dword [ecx - 4]
mov word [ebp - 0x1bc], 0xbc
dec dword [ebp - 0x1b0]
dec dword [ebp - 0x1b0]
lea eax, [ebp - 0x14c]
mov edx, 2
call fcn.00474d44
dec dword [ebp - 0x1b0]
lea eax, [ebp + 8]
mov edx, 2
call fcn.00474d44
mov ecx, dword [ebp - 0x1cc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret