Function at 0x417d20
Capabilities:
Set current directory

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
push edi
mov edi, eax
mov ebx, dword [edi + 0x600]
xor esi, esi
mov byte [edi + 0x178], 1
mov word [edi + 0x61c], 0
cmp dword [0x4af190], esi
jne 0x417d57
call fcn.00471e00
mov dword [0x4af190], eax
cmp eax, esi
je 0x417da3
mov ecx, dword [0x4af194]
cmp dword [ecx + 8], 0x14
jae 0x417d75
call fcn.00471e00
mov ecx, dword [0x4af194]
mov dword [ecx + 0xc], eax
cmp eax, esi
je 0x417da3
mov eax, dword [ecx + 4]
add dword [ecx + 8], 0xffffffec
lea edx, [eax + 0x14]
mov dword [0x4af198], eax
mov dword [ecx + 4], edx
cmp eax, esi
je 0x417da3
mov dword [eax], vtable.Label.0
mov dword [eax + 4], 0x49b8bd
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
jmp 0x417da5
xor eax, eax
mov dword [edi + 0x378], eax
cmp eax, esi
je 0x417f97
cmp dword [edi + 0x618], 2
mov eax, 0x49e244
je 0x417dc3
mov eax, ebx
mov ebp, dword [0x4af174]
push eax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], esi
call fcn.004180f0
mov ebx, dword [esp + 0x10]
mov esi, eax
cmp esi, 3
jne 0x417ded
push ebp
push ebx
push edi
call fcn.004181c0
mov esi, eax
mov ebp, 1
test ebx, ebx
je 0x417dff
mov edx, dword [ebx]
mov eax, dword [edx]
push ebp
mov ecx, ebx
call eax
cmp esi, ebp
jne 0x417f97
push 0
push 0
push 0
push 0x68
push edi
call fcn.0041e2e0
test eax, eax
je 0x417f97
mov ecx, dword [edi + 4]
mov dword [ecx + 0xc], ebp
mov eax, dword [edi]
push edi
call fcn.00423930
test eax, eax
je 0x417f97
mov eax, dword [edi]
mov esi, edi
call fcn.004239f0
cmp dword [edi + 8], 0
je 0x417e57
mov eax, dword [edi]
mov edx, dword [edi + 0xc]
mov dword [edx + 0x14], eax
mov ecx, dword [edi]
mov edx, dword [edi + 0xc]
mov dword [ecx + 0x10], edx
mov eax, dword [edi + 8]
mov dword [edi], eax
xor ebx, ebx
cmp dword [edi + 0x1c], ebx
jle 0x417e97
mov edi, edi
mov ecx, dword [edi + 0x18]
mov ebp, dword [ecx + ebx*4]
cmp byte [ebp + 0x3d], 0
jne 0x417e8c
test byte [ebp + 0x3c], 4
jne 0x417e8c
mov eax, dword [ebp + 0x1c]
push ebp
lea esi, [ebp + 0x28]
push edi
call fcn.004305f0
mov eax, dword [ebp + 0x20]
push ebp
lea esi, [ebp + 0x30]
push edi
call fcn.004305f0
inc ebx
cmp ebx, dword [edi + 0x1c]
jl 0x417e60
mov ebp, 1
cmp dword [edi + 0x164], 0
je 0x417ec7
mov esi, edi
call fcn.00421350
test eax, eax
je 0x417f97
mov eax, dword [edi + 0x164]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [edi + 0x164], 0
cmp dword [0x4ae3a4], 0
je 0x417ed6
push edi
call fcn.004306a0
mov ecx, dword [0x4aea64]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
add dword [edi + 0x174], ebp
push 0
push 0
push 0
push 0x68
push edi
call fcn.0041e2e0
test eax, eax
je 0x417f97
push 0
push 0
push 0
push 0x68
push edi
call fcn.0041e2e0
test eax, eax
je 0x417f97
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x10]
mov dword [eax + 0xc], ebp
mov ecx, dword [edi + 4]
mov dword [ecx + 0xc], ebp
mov edx, dword [edi + 0x378]
mov eax, dword [edi + 4]
push 0
push 0
mov dword [edx + 8], eax
mov ecx, dword [edi]
push 0
push ecx
mov ecx, edi
call fcn.00423a50
test eax, eax
je 0x417f97
mov eax, dword [edi]
push edi
call fcn.00423e70
test eax, eax
je 0x417f97
push 3
push 0
push str.ErrorLevel
mov ecx, edi
call fcn.00422f40
mov dword [0x4aea5c], eax
test eax, eax
je 0x417f97
push ebp
push 0
push 0xffffffffffffffff
push 0x49b8d8
push eax
call fcn.00477990
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov eax, dword [esp + 0x10]
call fcn.00414750
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xc
ret