Function at 0x5a5ba8
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
mov ecx, 9
push 0
push 0
dec ecx
jne 0x5a5bb0
push ecx
push ebx
push esi
push edi
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x5a658e
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 8]
mov eax, ebx
call fcn.005a403c
call fcn.0040c2ec
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 8]
mov cl, 1
xor edx, edx
call fcn.005a4f50
cmp dword [ebp - 8], 0
jbe 0x5a6566
lea eax, [ebp - 0xc]
mov edx, esi
call fcn.0040508c
cmp dword [ebp - 0xc], 0
jbe 0x5a5ca1
push 0x5a65a4
push dword [ebp - 8]
push 0x5a65b0
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.00405390
mov eax, dword [ebp - 0x14]
mov edx, 0x5a65bc
call fcn.0047a6e0
test al, al
je 0x5a5ca1
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
cmp byte [eax + 0x39d], 0
je 0x5a5c83
cmp byte [0x5b5768], 0
jne 0x5a5c83
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov eax, dword [eax + 0x384]
push eax
push 1
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov ecx, dword [eax + 0x3bc]
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov eax, dword [eax + 0x3d0]
mov edx, dword [ebp - 0xc]
call fcn.005a7884
mov eax, dword [0x5b583c]
cmp byte [eax], 0
je 0x5a5ca1
mov eax, dword [0x5b5bf4]
mov eax, dword [eax]
mov ecx, 2
mov edx, dword [ebp - 0xc]
call fcn.0053b388
mov byte [ebp - 0xd], 1
cmp dword [0x5b8620], 0
je 0x5a5cc2
push ebp
mov eax, dword [0x5b8620]
call fcn.005a5a3c
pop ecx
test al, al
jne case.0x5a5d26.15
push ebp
mov eax, dword [0x5b861c]
call fcn.005a5a3c
pop ecx
test al, al
jne case.0x5a5d26.15
lea ecx, [ebp - 4]
mov edx, dword [ebp - 8]
mov eax, dword [0x5b8618]
call fcn.005a35b8
test al, al
je 0x5a64b2
lea ecx, [ebp - 0x18]
mov edx, dword [ebp - 4]
mov eax, dword [0x5b8618]
call fcn.005a33e8
mov eax, dword [ebp - 0x18]
mov edx, 0x5a65d0
call fcn.0040541c
jne 0x5a6475
mov eax, dword [ebp - 4]
add eax, 0xfffffff1
cmp eax, 0x30
ja case.0x5a5d26.15
mov al, byte [eax + 0x5a5d2d]
jmp dword [eax*4 + 0x5a5d5e]
mov eax, dword [ebp - 0xc]
call fcn.005a5278
jmp case.0x5a5d26.15
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0040a184
mov ebx, eax
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov dword [eax + 0x48e], ebx
mov eax, dword [0x5b59f8]
mov edx, ebx
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
call fcn.0044cad8
jmp case.0x5a5d26.15
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0040a184
mov ebx, eax
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov dword [eax + 0x492], ebx
mov eax, dword [0x5b59f8]
mov edx, ebx
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
call fcn.0044cafc
jmp case.0x5a5d26.15
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0040a184
mov edx, eax
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
call fcn.0044cb24
jmp case.0x5a5d26.15
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0040a184
mov edx, eax
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
call fcn.0044cb48
jmp case.0x5a5d26.15
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0040a184
mov edx, eax
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
call fcn.00466548
jmp case.0x5a5d26.15
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0040a184
mov edx, eax
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
call fcn.00466578
jmp case.0x5a5d26.15
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
call fcn.00409be8
mov eax, dword [ebp - 0x1c]
mov edx, 0x5a65dc
call fcn.0047a6e0
test al, al
je 0x5a5eb6
mov eax, dword [0x5b5c94]
mov eax, dword [eax]
call fcn.0046cae8
jmp case.0x5a5d26.15
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0xc]
call fcn.00409be8
mov eax, dword [ebp - 0x20]
mov edx, 0x5a65f0
call fcn.0047a6e0
test al, al
je 0x5a5efe
mov eax, dword [0x5b5c94]
mov eax, dword [eax]
call fcn.0046cb98
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
cmp byte [eax + 0x22b], 2
je 0x5a5f5c
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov dl, 2
call fcn.004676a0
jmp 0x5a5f5c
mov eax, dword [0x5b5c94]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_IsIconic
test eax, eax
je 0x5a5f20
mov eax, dword [0x5b5c94]
mov eax, dword [eax]
call fcn.0046cb98
jmp 0x5a5f5c
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
cmp byte [eax + 0x22b], 2
jne 0x5a5f40
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
xor edx, edx
call fcn.004676a0
jmp 0x5a5f5c
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov eax, dword [eax + 0x4b4]
test eax, eax
je 0x5a5f5c
mov edx, dword [0x5b59f8]
call fcn.0053e304
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
cmp dword [eax + 0x4b4], 0
jne case.0x5a5d26.15
mov eax, dword [0x5b5c94]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_SetForegroundWindow
mov eax, dword [0x5b5c94]
mov eax, dword [eax]
mov eax, dword [eax + 0x44]
call fcn.00453cc4
push eax
call sub.user32.dll_SetActiveWindow
jmp case.0x5a5d26.15
mov dword [ebp - 4], 0xfffffffe
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 0xc]
call fcn.00409be8
mov eax, dword [ebp - 0x24]
mov edx, 0x5a6604
call fcn.0047a6e0
test al, al
je 0x5a5fc8
mov al, 1
mov dword [ebp - 4], 0xffffffff
jmp 0x5a5fff
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0xc]
call fcn.00409be8
mov eax, dword [ebp - 0x28]
mov edx, 0x5a6614
call fcn.0047a6e0
test al, al
je 0x5a5fe8
mov al, 2
jmp 0x5a5fff
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
cmp byte [eax + 0x3a6], 2
jne 0x5a5ffd
xor eax, eax
mov dword [ebp - 4], eax
xor eax, eax
mov edx, dword [0x5b59f8]
mov edx, dword [edx]
cmp al, byte [edx + 0x3a6]
je case.0x5a5d26.15
mov edx, dword [0x5b59f8]
mov edx, dword [edx]
mov ebx, eax
mov byte [edx + 0x3a6], bl
mov eax, dword [0x5b59f8]
cmp bl, 1
je 0x5a604c
lea edx, [ebp - 0x2c]
mov eax, dword [0x5b59f8]
xor eax, eax
mov al, bl
call fcn.0040a00c
mov edx, dword [ebp - 0x2c]
xor ecx, ecx
mov ax, 0x4d6
call fcn.0057101c
push 0x13
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 4]
push eax
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
call fcn.00453cc4
push eax
call sub.user32.dll_SetWindowPos
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov bl, byte [eax + 0x3a6]
cmp bl, 1
jne 0x5a609d
lea edx, [ebp - 0x30]
mov eax, dword [0x5b59f8]
xor eax, eax
mov al, bl
call fcn.0040a00c
mov edx, dword [ebp - 0x30]
xor ecx, ecx
mov ax, 0x4d6
call fcn.0057101c
mov eax, dword [0x5b583c]
cmp byte [eax], 0
je case.0x5a5d26.15
xor edx, edx
mov eax, 3
call fcn.0053b4ec
jmp case.0x5a5d26.15
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0040a184
mov ebx, eax
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov al, byte [eax + 0x3a4]
sub al, 1
je 0x5a60dd
sub al, 2
jne 0x5a610a
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov ecx, dword [eax + 0x348]
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
sub ecx, dword [eax + 0x340]
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov edx, ebx
call fcn.005527d8
jmp 0x5a61c8
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
call fcn.0044cd6c
cmp ebx, eax
jge 0x5a613e
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov eax, dword [eax + 0x308]
mov edx, ebx
call fcn.0044cb24
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov edx, ebx
call fcn.00466548
jmp 0x5a6160
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov edx, ebx
call fcn.00466548
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov eax, dword [eax + 0x308]
mov edx, ebx
call fcn.0044cb24
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
add ebx, dword [eax + 0x33c]
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov dword [eax + 0x344], ebx
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov eax, dword [eax + 0x308]
call fcn.0053eb7c
mov esi, eax
dec esi
test esi, esi
jl 0x5a61c8
inc esi
xor ebx, ebx
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov eax, dword [eax + 0x308]
mov edx, ebx
call fcn.0053eb50
xor edx, edx
call fcn.00426234
mov edx, dword [0x5b59f8]
mov edx, dword [edx]
add edx, 0x33c
call fcn.005378c8
inc ebx
dec esi
jne 0x5a6196
push 0
push 1
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
xor ecx, ecx
mov dx, 0x4ce
call fcn.00554f94
jmp case.0x5a5d26.15
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0040a184
mov ebx, eax
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov al, byte [eax + 0x3a4]
sub al, 1
je 0x5a6204
sub al, 2
jne 0x5a6231
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov edx, dword [eax + 0x344]
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
sub edx, dword [eax + 0x33c]
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov ecx, ebx
call fcn.005527d8
jmp 0x5a62ef
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
call fcn.0044cdb0
cmp ebx, eax
jge 0x5a6265
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov eax, dword [eax + 0x308]
mov edx, ebx
call fcn.0044cb48
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov edx, ebx
call fcn.00466578
jmp 0x5a6287
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov edx, ebx
call fcn.00466578
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov eax, dword [eax + 0x308]
mov edx, ebx
call fcn.0044cb48
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
add ebx, dword [eax + 0x340]
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov dword [eax + 0x348], ebx
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov eax, dword [eax + 0x308]
call fcn.0053eb7c
mov esi, eax
dec esi
test esi, esi
jl 0x5a62ef
inc esi
xor ebx, ebx
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov eax, dword [eax + 0x308]
mov edx, ebx
call fcn.0053eb50
xor edx, edx
call fcn.00426234
mov edx, dword [0x5b59f8]
mov edx, dword [edx]
add edx, 0x33c
call fcn.005378c8
inc ebx
dec esi
jne 0x5a62bd
push 0
push 1
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
xor ecx, ecx
mov dx, 0x4ce
call fcn.00554f94
jmp case.0x5a5d26.15
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov edx, dword [ebp - 0xc]
call fcn.0044d398
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov eax, dword [eax + 0x4b4]
test eax, eax
je case.0x5a5d26.15
mov edx, dword [0x5b59f8]
mov edx, dword [ebp - 0xc]
call fcn.0053e124
jmp case.0x5a5d26.15
mov eax, dword [0x5b5c94]
mov eax, dword [eax]
mov edx, dword [ebp - 0xc]
call fcn.0046cd60
jmp case.0x5a5d26.15
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
add eax, 0x390
mov edx, dword [ebp - 0xc]
call fcn.00405048
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
cmp dword [eax + 0x390], 0
seta al
mov edx, dword [0x5b59f8]
mov edx, dword [edx]
mov byte [edx + 0x397], al
jmp case.0x5a5d26.15
cmp dword [ebp - 0xc], 0
jne 0x5a63a6
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov byte [eax + 0x396], 0
jmp case.0x5a5d26.15
mov eax, dword [ebp - 0xc]
call fcn.004054d0
push eax
call sub.KERNEL32.DLL_SetCurrentDirectoryA
cmp eax, 1
sbb ebx, ebx
inc ebx
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov byte [eax + 0x396], bl
mov eax, dword [0x5b59f8]
test bl, bl
jne case.0x5a5d26.15
mov ebx, dword [0x5b5a9c]
mov ebx, dword [ebx]
lea edx, [ebp - 0x34]
mov eax, 0x130
call ebx
mov eax, dword [ebp - 0x34]
call fcn.005a51a4
jmp case.0x5a5d26.15
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0040a184
mov edx, dword [0x5b59f8]
mov edx, dword [edx]
mov dword [edx + 0x4ac], eax
mov eax, 0x5a6628
call fcn.005a5a20
mov eax, 0x5a6640
call fcn.005a5a20
mov eax, 0x5a664c
call fcn.005a5a20
mov eax, 0x5a6668
call fcn.005a5a20
jmp case.0x5a5d26.15
mov eax, dword [ebp - 0xc]
call fcn.004052d0
dec eax
jne 0x5a6455
mov eax, dword [ebp - 0xc]
mov al, byte [eax]
mov edx, dword [0x5b5eb8]
mov byte [edx], al
jmp case.0x5a5d26.15
mov eax, dword [0x5b5f30]
mov eax, dword [eax]
mov cl, 0x2e
mov edx, 0xe
call fcn.0040d92c
mov edx, dword [0x5b5eb8]
mov byte [edx], al
jmp case.0x5a5d26.15
mov byte [ebp - 0xd], 0
mov ebx, dword [0x5b5a9c]
mov ebx, dword [ebx]
lea edx, [ebp - 0x3c]
mov eax, 0xe5
call ebx
push dword [ebp - 0x3c]
push 0x5a6684
push dword [ebp - 8]
push 0x5a6690
lea eax, [ebp - 0x38]
mov edx, 4
call fcn.00405390
mov eax, dword [ebp - 0x38]
call fcn.005a51a4
jmp case.0x5a5d26.15
cmp dword [ebp - 0xc], 0
jbe case.0x5a5d26.15
xor eax, eax
push ebp
push 0x5a6527
push dword fs:[eax]
mov dword fs:[eax], esp
push dword [ebp - 8]
push 0x5a669c
push dword [ebp - 0xc]
lea eax, [ebp - 0x40]
mov edx, 3
call fcn.00405390
mov edx, dword [ebp - 0x40]
mov eax, dword [0x5b861c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov dword [ebp - 4], eax
mov eax, dword [0x5b583c]
cmp byte [eax], 0
je 0x5a651d
mov al, byte [0x5b5760]
push eax
push 0
lea ecx, [ebp - 0x44]
mov edx, dword [ebp - 4]
mov eax, dword [0x5b861c]
call fcn.005a33e8
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 8]
xor eax, eax
call fcn.0053b450
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp case.0x5a5d26.15
cmp byte [ebp - 0xd], 0
je 0x5a6566
mov eax, dword [ebp - 0xc]
push eax
push 1
lea edx, [ebp - 0x4c]
mov eax, dword [ebp - 8]
call fcn.00409ad8
mov eax, dword [ebp - 0x4c]
lea edx, [ebp - 0x48]
call fcn.005a403c
mov ecx, dword [ebp - 0x48]
mov eax, dword [0x5b59f8]
mov eax, dword [eax]
mov dx, 0x4ca
call fcn.00554f94
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5a6595
lea eax, [ebp - 0x4c]
mov edx, 0xf
call fcn.00405018
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00405018
ret