Function at 0x4dc420
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff9c
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x2c]
mov edx, dword [0x543d24]
call fcn.00403e48
lea eax, [ebp - 0x60]
mov edx, dword [0x543b14]
call fcn.00403e48
xor eax, eax
push ebp
push 0x4dc665
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
call fcn.005397ec
mov ecx, dword [0x672428]
mov ecx, dword [ecx + 0xc0]
xor edx, edx
call fcn.00537ff4
test al, al
je 0x4dc626
mov byte [ebp - 0x60], 1
xor eax, eax
mov dword [ebp - 0x3c], eax
mov al, byte [0x4dc674]
mov byte [ebp - 0x5e], al
call fcn.005397ec
mov eax, dword [eax + 0x10]
mov edi, dword [eax + 0x18]
dec edi
test edi, edi
jl 0x4dc533
inc edi
xor ebx, ebx
call fcn.00656518
mov dword [ebp - 0x34], eax
call fcn.005397ec
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x1c]
mov esi, dword [eax + ebx*4]
xor eax, eax
mov dword [ebp - 0x5c], eax
xor eax, eax
mov dword [ebp - 0x58], eax
mov dl, 2
mov eax, esi
call fcn.0056448c
mov dword [ebp - 0x4c], eax
mov edx, dword [ebp - 0x4c]
mov eax, esi
call fcn.005c0358
mov dword [ebp - 0x48], eax
mov eax, dword [0x672384]
inc dword [eax]
lea edx, [ebp - 0x60]
mov eax, esi
call fcn.005bc150
mov eax, dword [0x672384]
dec dword [eax]
mov byte [ebp - 0x2c], 2
mov al, byte [0x4dc674]
mov byte [ebp - 0x2b], al
mov dword [ebp - 0x28], 0xd20
mov esi, dword [ebp - 0x34]
mov dword [ebp - 0x18], esi
call fcn.005397f4
lea ecx, [ebp - 0x2c]
mov dl, 0xe
call fcn.005cfcdc
mov eax, esi
call fcn.004028c0
inc ebx
dec edi
jne 0x4dc4ab
call fcn.005397f4
mov edi, eax
call fcn.0062551c
call fcn.005397ec
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov eax, dword [eax + 0x158]
lea edx, [ebp - 0x64]
call fcn.0065cfe0
mov eax, dword [ebp - 0x64]
push eax
call sub.kernel32.dll_SetCurrentDirectoryW
mov eax, dword [edi + 0x590]
mov ebx, dword [eax + 0x18]
dec ebx
cmp ebx, 0
jl 0x4dc61a
mov eax, dword [edi + 0x590]
mov eax, dword [eax + 0x1c]
mov esi, dword [eax + ebx*4]
cmp byte [esi + 4], 0
jne 0x4dc610
cmp byte [esi + 5], 0x58
jne 0x4dc610
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 8]
lea edx, [ebp - 4]
mov eax, dword [esi + 0x3c]
call fcn.00545f40
cmp dword [ebp - 4], 0
je 0x4dc610
cmp dword [ebp - 8], 0
je 0x4dc610
mov edx, dword [ebp - 4]
mov eax, 0x4dc67c
call fcn.0065c750
dec eax
jne 0x4dc5d2
lea eax, [ebp - 4]
mov ecx, 7
mov edx, 1
call fcn.00403cb8
call fcn.005397ec
mov cl, 1
mov edx, dword [ebp - 4]
call fcn.00537bbc
push eax
call fcn.005397ec
mov eax, dword [eax + 0x10]
pop edx
call fcn.00656dac
test al, al
je 0x4dc610
lea eax, [ebp - 0x64]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
xor eax, eax
call fcn.0054607c
mov edx, dword [ebp - 0x64]
lea eax, [esi + 0x3c]
call fcn.004038bc
dec ebx
cmp ebx, 0xffffffff
jne 0x4dc576
call fcn.00625578
mov eax, edi
call fcn.005ced84
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4dc66c
lea eax, [ebp - 0x64]
call fcn.00403880
lea eax, [ebp - 0x60]
mov edx, dword [0x543b14]
call fcn.00403f10
lea eax, [ebp - 0x2c]
mov edx, dword [0x543d24]
call fcn.00403f10
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00403898
ret