Function at 0x418480
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 0x4184b7
call fcn.00473ee0
mov dword [0x4cb428], eax
cmp eax, esi
je 0x418503
mov ecx, dword [0x4cb42c]
cmp dword [ecx + 8], 0x14
jae 0x4184d5
call fcn.00473ee0
mov ecx, dword [0x4cb42c]
mov dword [ecx + 0xc], eax
cmp eax, esi
je 0x418503
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 0x418503
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 0x418505
xor eax, eax
mov dword [edi + 0x638], eax
cmp eax, esi
je 0x4186f7
cmp dword [edi + 0xae0], 2
mov eax, 0x4a864c
je 0x418523
mov eax, ebx
mov ebp, dword [0x4cb40c]
push eax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], esi
call fcn.00418870
mov ebx, dword [esp + 0x10]
mov esi, eax
cmp esi, 3
jne 0x41854d
push ebp
push ebx
push edi
call fcn.00418940
mov esi, eax
mov ebp, 1
test ebx, ebx
je 0x41855f
mov edx, dword [ebx]
mov eax, dword [edx]
push ebp
mov ecx, ebx
call eax
cmp esi, ebp
jne 0x4186f7
push 0
push 0
push 0
push 0x68
push edi
call fcn.0041eee0
test eax, eax
je 0x4186f7
mov ecx, dword [edi + 4]
mov dword [ecx + 0xc], ebp
mov eax, dword [edi]
push edi
call fcn.004245f0
test eax, eax
je 0x4186f7
mov eax, dword [edi]
mov esi, edi
call fcn.004246b0
cmp dword [edi + 8], 0
je 0x4185b7
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 0x4185f7
mov edi, edi
mov ecx, dword [edi + 0x18]
mov ebp, dword [ecx + ebx*4]
cmp byte [ebp + 0x3d], 0
jne 0x4185ec
test byte [ebp + 0x3c], 4
jne 0x4185ec
mov eax, dword [ebp + 0x1c]
push ebp
lea esi, [ebp + 0x28]
push edi
call fcn.00431390
mov eax, dword [ebp + 0x20]
push ebp
lea esi, [ebp + 0x30]
push edi
call fcn.00431390
inc ebx
cmp ebx, dword [edi + 0x1c]
jl 0x4185c0
mov ebp, 1
cmp dword [edi + 0x264], 0
je 0x418627
mov esi, edi
call fcn.00422010
test eax, eax
je 0x4186f7
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 0x418636
push edi
call fcn.00431440
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.0041eee0
test eax, eax
je 0x4186f7
push 0
push 0
push 0
push 0x68
push edi
call fcn.0041eee0
test eax, eax
je 0x4186f7
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.00424710
test eax, eax
je 0x4186f7
mov eax, dword [edi]
push edi
call fcn.00424b30
test eax, eax
je 0x4186f7
push 3
push 0
push 0x4a8650
mov ecx, edi
call fcn.00423be0
mov dword [0x4cacf4], eax
test eax, eax
je 0x4186f7
push ebp
push 0
push 0xffffffffffffffff
push 0x4a3920
push eax
call fcn.00479c20
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov eax, dword [esp + 0x10]
call fcn.00414e70
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