Function at 0x418370
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 0x4183a7
call fcn.00473ce0
mov dword [0x4cb428], eax
cmp eax, esi
je 0x4183f3
mov ecx, dword [0x4cb42c]
cmp dword [ecx + 8], 0x14
jae 0x4183c5
call fcn.00473ce0
mov ecx, dword [0x4cb42c]
mov dword [ecx + 0xc], eax
cmp eax, esi
je 0x4183f3
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 0x4183f3
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 0x4183f5
xor eax, eax
mov dword [edi + 0x638], eax
cmp eax, esi
je 0x4185e7
cmp dword [edi + 0xae0], 2
mov eax, 0x4a864c
je 0x418413
mov eax, ebx
mov ebp, dword [0x4cb40c]
push eax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], esi
call fcn.00418760
mov ebx, dword [esp + 0x10]
mov esi, eax
cmp esi, 3
jne 0x41843d
push ebp
push ebx
push edi
call fcn.00418830
mov esi, eax
mov ebp, 1
test ebx, ebx
je 0x41844f
mov edx, dword [ebx]
mov eax, dword [edx]
push ebp
mov ecx, ebx
call eax
cmp esi, ebp
jne 0x4185e7
push 0
push 0
push 0
push 0x68
push edi
call fcn.0041edd0
test eax, eax
je 0x4185e7
mov ecx, dword [edi + 4]
mov dword [ecx + 0xc], ebp
mov eax, dword [edi]
push edi
call fcn.004244e0
test eax, eax
je 0x4185e7
mov eax, dword [edi]
mov esi, edi
call fcn.004245a0
cmp dword [edi + 8], 0
je 0x4184a7
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 0x4184e7
mov edi, edi
mov ecx, dword [edi + 0x18]
mov ebp, dword [ecx + ebx*4]
cmp byte [ebp + 0x3d], 0
jne 0x4184dc
test byte [ebp + 0x3c], 4
jne 0x4184dc
mov eax, dword [ebp + 0x1c]
push ebp
lea esi, [ebp + 0x28]
push edi
call fcn.00431300
mov eax, dword [ebp + 0x20]
push ebp
lea esi, [ebp + 0x30]
push edi
call fcn.00431300
inc ebx
cmp ebx, dword [edi + 0x1c]
jl 0x4184b0
mov ebp, 1
cmp dword [edi + 0x264], 0
je 0x418517
mov esi, edi
call fcn.00421f00
test eax, eax
je 0x4185e7
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 0x418526
push edi
call fcn.004313b0
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.0041edd0
test eax, eax
je 0x4185e7
push 0
push 0
push 0
push 0x68
push edi
call fcn.0041edd0
test eax, eax
je 0x4185e7
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.00424600
test eax, eax
je 0x4185e7
mov eax, dword [edi]
push edi
call fcn.00424a20
test eax, eax
je 0x4185e7
push 3
push 0
push 0x4a8650
mov ecx, edi
call fcn.00423ad0
mov dword [0x4cacf4], eax
test eax, eax
je 0x4185e7
push ebp
push 0
push 0xffffffffffffffff
push 0x4a3920
push eax
call fcn.00479a20
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov eax, dword [esp + 0x10]
call fcn.00414d30
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