Function at 0x418410
Capabilities:
Set current directory

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
push edi
mov edi, eax
mov ebx, dword [edi + 0xac8]
xor esi, esi
mov byte [edi + 0x278], 1
mov word [edi + 0xae4], 0
cmp dword [0x4cb428], esi
jne 0x418447
call fcn.00473dc0
mov dword [0x4cb428], eax
cmp eax, esi
je 0x418493
mov ecx, dword [0x4cb42c]
cmp dword [ecx + 8], 0x14
jae 0x418465
call fcn.00473dc0
mov ecx, dword [0x4cb42c]
mov dword [ecx + 0xc], eax
cmp eax, esi
je 0x418493
mov eax, dword [ecx + 4]
add dword [ecx + 8], 0xffffffec
lea edx, [eax + 0x14]
mov dword [0x4cb430], eax
mov dword [ecx + 4], edx
cmp eax, esi
je 0x418493
mov dword [eax], vtable.Label.0
mov dword [eax + 4], 0x4a3910
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
jmp 0x418495
xor eax, eax
mov dword [edi + 0x638], eax
cmp eax, esi
je 0x418687
cmp dword [edi + 0xae0], 2
mov eax, 0x4a864c
je 0x4184b3
mov eax, ebx
mov ebp, dword [0x4cb40c]
push eax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], esi
call fcn.00418800
mov ebx, dword [esp + 0x10]
mov esi, eax
cmp esi, 3
jne 0x4184dd
push ebp
push ebx
push edi
call fcn.004188d0
mov esi, eax
mov ebp, 1
test ebx, ebx
je 0x4184ef
mov edx, dword [ebx]
mov eax, dword [edx]
push ebp
mov ecx, ebx
call eax
cmp esi, ebp
jne 0x418687
push 0
push 0
push 0
push 0x68
push edi
call fcn.0041ee70
test eax, eax
je 0x418687
mov ecx, dword [edi + 4]
mov dword [ecx + 0xc], ebp
mov eax, dword [edi]
push edi
call fcn.00424580
test eax, eax
je 0x418687
mov eax, dword [edi]
mov esi, edi
call fcn.00424640
cmp dword [edi + 8], 0
je 0x418547
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 0x418587
mov edi, edi
mov ecx, dword [edi + 0x18]
mov ebp, dword [ecx + ebx*4]
cmp byte [ebp + 0x3d], 0
jne 0x41857c
test byte [ebp + 0x3c], 4
jne 0x41857c
mov eax, dword [ebp + 0x1c]
push ebp
lea esi, [ebp + 0x28]
push edi
call fcn.00431320
mov eax, dword [ebp + 0x20]
push ebp
lea esi, [ebp + 0x30]
push edi
call fcn.00431320
inc ebx
cmp ebx, dword [edi + 0x1c]
jl 0x418550
mov ebp, 1
cmp dword [edi + 0x264], 0
je 0x4185b7
mov esi, edi
call fcn.00421fa0
test eax, eax
je 0x418687
mov eax, dword [edi + 0x264]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [edi + 0x264], 0
cmp dword [0x4ca63c], 0
je 0x4185c6
push edi
call fcn.004313d0
mov ecx, dword [0x4cacfc]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
add dword [edi + 0x274], ebp
push 0
push 0
push 0
push 0x68
push edi
call fcn.0041ee70
test eax, eax
je 0x418687
push 0
push 0
push 0
push 0x68
push edi
call fcn.0041ee70
test eax, eax
je 0x418687
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 + 0x638]
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.004246a0
test eax, eax
je 0x418687
mov eax, dword [edi]
push edi
call fcn.00424ac0
test eax, eax
je 0x418687
push 3
push 0
push 0x4a8650
mov ecx, edi
call fcn.00423b70
mov dword [0x4cacf4], eax
test eax, eax
je 0x418687
push ebp
push 0
push 0xffffffffffffffff
push 0x4a3920
push eax
call fcn.00479b00
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov eax, dword [esp + 0x10]
call fcn.00414dd0
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