Function at 0x4184c0
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 [0x4cc448], esi
jne 0x4184f7
call fcn.00474040
mov dword [0x4cc448], eax
cmp eax, esi
je 0x418543
mov ecx, dword [0x4cc44c]
cmp dword [ecx + 8], 0x14
jae 0x418515
call fcn.00474040
mov ecx, dword [0x4cc44c]
mov dword [ecx + 0xc], eax
cmp eax, esi
je 0x418543
mov eax, dword [ecx + 4]
add dword [ecx + 8], 0xffffffec
lea edx, [eax + 0x14]
mov dword [0x4cc450], eax
mov dword [ecx + 4], edx
cmp eax, esi
je 0x418543
mov dword [eax], vtable.Label.0
mov dword [eax + 4], 0x4a4890
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
jmp 0x418545
xor eax, eax
mov dword [edi + 0x638], eax
cmp eax, esi
je 0x418737
cmp dword [edi + 0xae0], 2
mov eax, 0x4a9670
je 0x418563
mov eax, ebx
mov ebp, dword [0x4cc42c]
push eax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], esi
call fcn.004188b0
mov ebx, dword [esp + 0x10]
mov esi, eax
cmp esi, 3
jne 0x41858d
push ebp
push ebx
push edi
call fcn.00418980
mov esi, eax
mov ebp, 1
test ebx, ebx
je 0x41859f
mov edx, dword [ebx]
mov eax, dword [edx]
push ebp
mov ecx, ebx
call eax
cmp esi, ebp
jne 0x418737
push 0
push 0
push 0
push 0x68
push edi
call fcn.0041ef90
test eax, eax
je 0x418737
mov ecx, dword [edi + 4]
mov dword [ecx + 0xc], ebp
mov eax, dword [edi]
push edi
call fcn.004246f0
test eax, eax
je 0x418737
mov eax, dword [edi]
mov esi, edi
call fcn.004247b0
cmp dword [edi + 8], 0
je 0x4185f7
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 0x418637
mov edi, edi
mov ecx, dword [edi + 0x18]
mov ebp, dword [ecx + ebx*4]
cmp byte [ebp + 0x3d], 0
jne 0x41862c
test byte [ebp + 0x3c], 4
jne 0x41862c
mov eax, dword [ebp + 0x1c]
push ebp
lea esi, [ebp + 0x28]
push edi
call fcn.004314b0
mov eax, dword [ebp + 0x20]
push ebp
lea esi, [ebp + 0x30]
push edi
call fcn.004314b0
inc ebx
cmp ebx, dword [edi + 0x1c]
jl 0x418600
mov ebp, 1
cmp dword [edi + 0x264], 0
je 0x418667
mov esi, edi
call fcn.004220c0
test eax, eax
je 0x418737
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 [0x4cb65c], 0
je 0x418676
push edi
call fcn.00431560
mov ecx, dword [0x4cbd1c]
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.0041ef90
test eax, eax
je 0x418737
push 0
push 0
push 0
push 0x68
push edi
call fcn.0041ef90
test eax, eax
je 0x418737
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.00424810
test eax, eax
je 0x418737
mov eax, dword [edi]
push edi
call fcn.00424c30
test eax, eax
je 0x418737
push 3
push 0
push 0x4a9674
mov ecx, edi
call fcn.00423ce0
mov dword [0x4cbd14], eax
test eax, eax
je 0x418737
push ebp
push 0
push 0xffffffffffffffff
push 0x4a4920
push eax
call fcn.00479fa0
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov eax, dword [esp + 0x10]
call fcn.00414eb0
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