Function at 0x417e40
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 0x417e63
mov esi, dword [0x4af878]
cmp dword [0x4af214], ebx
jne 0x417e79
call fcn.004723c0
mov dword [0x4af214], eax
cmp eax, ebx
je 0x417ec5
mov ecx, dword [0x4af218]
cmp dword [ecx + 8], 0x14
jae 0x417e97
call fcn.004723c0
mov ecx, dword [0x4af218]
mov dword [ecx + 0xc], eax
cmp eax, ebx
je 0x417ec5
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 0x417ec5
mov dword [eax], vtable.Label.0
mov dword [eax + 4], 0x49b8ad
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
jmp 0x417ec7
xor eax, eax
mov dword [0x4af5f0], eax
cmp eax, ebx
je 0x4180e1
cmp dword [0x4af890], 2
mov eax, 0x49e250
je 0x417ee4
mov eax, esi
mov edi, dword [0x4af1f8]
push eax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], ebx
call fcn.00418230
mov ebp, dword [esp + 0x10]
mov esi, eax
cmp esi, 3
jne 0x417f0d
push edi
push ebp
call fcn.00418300
mov esi, eax
mov edi, 1
cmp ebp, ebx
je 0x417f20
mov edx, dword [ebp]
mov eax, dword [edx]
push edi
mov ecx, ebp
call eax
cmp esi, edi
jne 0x4180e1
push ebx
push ebx
push ebx
push 0x68
push 0x4af278
call fcn.0041e3b0
test eax, eax
je 0x4180e1
mov ecx, dword [0x4af27c]
mov dword [ecx + 0xc], edi
mov eax, dword [0x4af278]
call fcn.00423930
test eax, eax
je 0x4180e1
mov eax, dword [0x4af278]
call fcn.004239e0
cmp dword [0x4af280], ebx
je 0x417f93
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 0x417fda
lea ecx, [ecx]
mov ecx, dword [0x4af290]
mov edi, dword [ecx + ebp*4]
cmp byte [edi + 0x3d], bl
jne 0x417fcc
test byte [edi + 0x3c], 4
jne 0x417fcc
mov eax, dword [edi + 0x1c]
lea esi, [edi + 0x28]
push edi
call fcn.004305a0
mov eax, dword [edi + 0x20]
lea esi, [edi + 0x30]
push edi
call fcn.004305a0
inc ebp
cmp ebp, dword [0x4af294]
jl 0x417fa0
mov edi, 1
cmp dword [0x4af3dc], ebx
je 0x418002
call fcn.00421300
test eax, eax
je 0x4180e1
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 0x41800f
call fcn.00430640
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.0041e3b0
test eax, eax
je 0x4180e1
push ebx
push ebx
push ebx
push 0x68
push 0x4af278
call fcn.0041e3b0
test eax, eax
je 0x4180e1
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.00423a50
test eax, eax
je 0x4180e1
mov eax, dword [0x4af278]
call fcn.00423e70
test eax, eax
je 0x4180e1
push 3
push ebx
push str.ErrorLevel
mov ecx, 0x4af278
call fcn.00422f40
mov dword [0x4aeae0], eax
cmp eax, ebx
je 0x4180e1
push edi
push ebx
push 0xffffffffffffffff
push 0x49b8c8
push eax
call fcn.00478140
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov eax, dword [esp + 0x10]
call fcn.004147d0
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