Function at 0x417da0
Capabilities:
Set current directory

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
xor ebx, ebx
mov esi, eax
push edi
mov byte [0x4af3f0], 1
mov word [0x4af894], bx
cmp esi, ebx
jne 0x417dc3
mov esi, dword [0x4af878]
cmp dword [0x4af214], ebx
jne 0x417dd9
call fcn.00472320
mov dword [0x4af214], eax
cmp eax, ebx
je 0x417e25
mov ecx, dword [0x4af218]
cmp dword [ecx + 8], 0x14
jae 0x417df7
call fcn.00472320
mov ecx, dword [0x4af218]
mov dword [ecx + 0xc], eax
cmp eax, ebx
je 0x417e25
mov eax, dword [ecx + 4]
add dword [ecx + 8], 0xffffffec
lea edx, [eax + 0x14]
mov dword [0x4af21c], eax
mov dword [ecx + 4], edx
cmp eax, ebx
je 0x417e25
mov dword [eax], vtable.Label.0
mov dword [eax + 4], 0x49b8cd
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
jmp 0x417e27
xor eax, eax
mov dword [0x4af5f0], eax
cmp eax, ebx
je 0x418041
cmp dword [0x4af890], 2
mov eax, 0x49e264
je 0x417e44
mov eax, esi
mov edi, dword [0x4af1f8]
push eax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], ebx
call fcn.00418190
mov ebp, dword [esp + 0x10]
mov esi, eax
cmp esi, 3
jne 0x417e6d
push edi
push ebp
call fcn.00418260
mov esi, eax
mov edi, 1
cmp ebp, ebx
je 0x417e80
mov edx, dword [ebp]
mov eax, dword [edx]
push edi
mov ecx, ebp
call eax
cmp esi, edi
jne 0x418041
push ebx
push ebx
push ebx
push 0x68
push 0x4af278
call fcn.0041e310
test eax, eax
je 0x418041
mov ecx, dword [0x4af27c]
mov dword [ecx + 0xc], edi
mov eax, dword [0x4af278]
call fcn.00423890
test eax, eax
je 0x418041
mov eax, dword [0x4af278]
call fcn.00423940
cmp dword [0x4af280], ebx
je 0x417ef3
mov eax, dword [0x4af278]
mov edx, dword [0x4af284]
mov dword [edx + 0x14], eax
mov ecx, dword [0x4af278]
mov edx, dword [0x4af284]
mov dword [ecx + 0x10], edx
mov eax, dword [0x4af280]
mov dword [0x4af278], eax
xor ebp, ebp
cmp dword [0x4af294], ebx
jle 0x417f3a
lea ecx, [ecx]
mov ecx, dword [0x4af290]
mov edi, dword [ecx + ebp*4]
cmp byte [edi + 0x3d], bl
jne 0x417f2c
test byte [edi + 0x3c], 4
jne 0x417f2c
mov eax, dword [edi + 0x1c]
lea esi, [edi + 0x28]
push edi
call fcn.00430500
mov eax, dword [edi + 0x20]
lea esi, [edi + 0x30]
push edi
call fcn.00430500
inc ebp
cmp ebp, dword [0x4af294]
jl 0x417f00
mov edi, 1
cmp dword [0x4af3dc], ebx
je 0x417f62
call fcn.00421260
test eax, eax
je 0x418041
mov eax, dword [0x4af3dc]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [0x4af3dc], ebx
cmp dword [0x4ae428], ebx
je 0x417f6f
call fcn.004305a0
mov ecx, dword [0x4aeae8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
add dword [0x4af3ec], edi
push ebx
push ebx
push ebx
push 0x68
push 0x4af278
call fcn.0041e310
test eax, eax
je 0x418041
push ebx
push ebx
push ebx
push 0x68
push 0x4af278
call fcn.0041e310
test eax, eax
je 0x418041
mov edx, dword [0x4af27c]
mov eax, dword [edx + 0x10]
mov dword [eax + 0xc], edi
mov ecx, dword [0x4af27c]
mov dword [ecx + 0xc], edi
mov edx, dword [0x4af5f0]
mov eax, dword [0x4af27c]
push ebx
push ebx
mov dword [edx + 8], eax
mov ecx, dword [0x4af278]
push ebx
push ecx
mov ecx, 0x4af278
call fcn.004239b0
test eax, eax
je 0x418041
mov eax, dword [0x4af278]
call fcn.00423dd0
test eax, eax
je 0x418041
push 3
push ebx
push str.ErrorLevel
mov ecx, 0x4af278
call fcn.00422ea0
mov dword [0x4aeae0], eax
cmp eax, ebx
je 0x418041
push edi
push ebx
push 0xffffffffffffffff
push 0x49b8e8
push eax
call fcn.004780a0
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov eax, dword [esp + 0x10]
call fcn.00414790
mov eax, edi
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