Function at 0x417c30
Capabilities:
Set current directory

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
xor ebx, ebx
mov esi, eax
push edi
mov byte [0x4af408], 1
mov word [0x4af8ac], bx
cmp esi, ebx
jne 0x417c53
mov esi, dword [0x4af890]
cmp dword [0x4af210], ebx
jne 0x417c69
call fcn.004721b0
mov dword [0x4af210], eax
cmp eax, ebx
je 0x417cb5
mov ecx, dword [0x4af214]
cmp dword [ecx + 8], 0x14
jae 0x417c87
call fcn.004721b0
mov ecx, dword [0x4af214]
mov dword [ecx + 0xc], eax
cmp eax, ebx
je 0x417cb5
mov eax, dword [ecx + 4]
add dword [ecx + 8], 0xffffffec
lea edx, [eax + 0x14]
mov dword [0x4af218], eax
mov dword [ecx + 4], edx
cmp eax, ebx
je 0x417cb5
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 0x417cb7
xor eax, eax
mov dword [0x4af608], eax
cmp eax, ebx
je 0x417ed1
cmp dword [0x4af8a8], 2
mov eax, 0x49e264
je 0x417cd4
mov eax, esi
mov edi, dword [0x4af1f4]
push eax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], ebx
call fcn.00418020
mov ebp, dword [esp + 0x10]
mov esi, eax
cmp esi, 3
jne 0x417cfd
push edi
push ebp
call fcn.004180f0
mov esi, eax
mov edi, 1
cmp ebp, ebx
je 0x417d10
mov edx, dword [ebp]
mov eax, dword [edx]
push edi
mov ecx, ebp
call eax
cmp esi, edi
jne 0x417ed1
push ebx
push ebx
push ebx
push 0x68
push 0x4af290
call fcn.0041e1a0
test eax, eax
je 0x417ed1
mov ecx, dword [0x4af294]
mov dword [ecx + 0xc], edi
mov eax, dword [0x4af290]
call fcn.00423720
test eax, eax
je 0x417ed1
mov eax, dword [0x4af290]
call fcn.004237d0
cmp dword [0x4af298], ebx
je 0x417d83
mov eax, dword [0x4af290]
mov edx, dword [0x4af29c]
mov dword [edx + 0x14], eax
mov ecx, dword [0x4af290]
mov edx, dword [0x4af29c]
mov dword [ecx + 0x10], edx
mov eax, dword [0x4af298]
mov dword [0x4af290], eax
xor ebp, ebp
cmp dword [0x4af2ac], ebx
jle 0x417dca
lea ecx, [ecx]
mov ecx, dword [0x4af2a8]
mov edi, dword [ecx + ebp*4]
cmp byte [edi + 0x3d], bl
jne 0x417dbc
test byte [edi + 0x3c], 4
jne 0x417dbc
mov eax, dword [edi + 0x1c]
lea esi, [edi + 0x28]
push edi
call fcn.00430390
mov eax, dword [edi + 0x20]
lea esi, [edi + 0x30]
push edi
call fcn.00430390
inc ebp
cmp ebp, dword [0x4af2ac]
jl 0x417d90
mov edi, 1
cmp dword [0x4af3f4], ebx
je 0x417df2
call fcn.004210f0
test eax, eax
je 0x417ed1
mov eax, dword [0x4af3f4]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [0x4af3f4], ebx
cmp dword [0x4ae424], ebx
je 0x417dff
call fcn.00430430
mov ecx, dword [0x4aeae4]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
add dword [0x4af404], edi
push ebx
push ebx
push ebx
push 0x68
push 0x4af290
call fcn.0041e1a0
test eax, eax
je 0x417ed1
push ebx
push ebx
push ebx
push 0x68
push 0x4af290
call fcn.0041e1a0
test eax, eax
je 0x417ed1
mov edx, dword [0x4af294]
mov eax, dword [edx + 0x10]
mov dword [eax + 0xc], edi
mov ecx, dword [0x4af294]
mov dword [ecx + 0xc], edi
mov edx, dword [0x4af608]
mov eax, dword [0x4af294]
push ebx
push ebx
mov dword [edx + 8], eax
mov ecx, dword [0x4af290]
push ebx
push ecx
mov ecx, 0x4af290
call fcn.00423840
test eax, eax
je 0x417ed1
mov eax, dword [0x4af290]
call fcn.00423c60
test eax, eax
je 0x417ed1
push 3
push ebx
push str.ErrorLevel
mov ecx, 0x4af290
call fcn.00422d30
mov dword [0x4aeadc], eax
cmp eax, ebx
je 0x417ed1
push edi
push ebx
push 0xffffffffffffffff
push 0x49b8e8
push eax
call fcn.00477f30
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov eax, dword [esp + 0x10]
call fcn.00414620
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