Function at 0x5a15f4
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xa
push 0
push 0
dec ecx
jne 0x5a15fc
push ecx
push ebx
push esi
push edi
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x5a2014
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 8]
mov eax, ebx
call fcn.0059f924
call fcn.0040c1b4
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 8]
mov cl, 1
xor edx, edx
call fcn.005a08c0
cmp dword [ebp - 8], 0
jbe 0x5a1fec
lea eax, [ebp - 0xc]
mov edx, esi
call fcn.0040508c
cmp dword [ebp - 0xc], 0
jbe 0x5a16ed
push 0x5a202c
push dword [ebp - 8]
push 0x5a2038
lea eax, [ebp - 0x1c]
mov edx, 3
call fcn.00405390
mov eax, dword [ebp - 0x1c]
mov edx, 0x5a2044
call fcn.0047a178
test al, al
je 0x5a16ed
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
cmp byte [eax + 0x39f], 0
je 0x5a16cf
cmp byte [0x5b171c], 0
jne 0x5a16cf
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x384]
push eax
push 1
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov ecx, dword [eax + 0x3c0]
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x3d4]
mov edx, dword [ebp - 0xc]
call fcn.005a3350
mov eax, dword [0x5b17f0]
cmp byte [eax], 0
je 0x5a16ed
mov eax, dword [0x5b1ba8]
mov eax, dword [eax]
mov ecx, 2
mov edx, dword [ebp - 0xc]
call fcn.0053bfb0
mov byte [ebp - 0xd], 1
cmp dword [0x5b462c], 0
je 0x5a170e
push ebp
mov eax, dword [0x5b462c]
call fcn.005a13ac
pop ecx
test al, al
jne case.0x5a1772.15
push ebp
mov eax, dword [0x5b4628]
call fcn.005a13ac
pop ecx
test al, al
jne case.0x5a1772.15
lea ecx, [ebp - 4]
mov edx, dword [ebp - 8]
mov eax, dword [0x5b4624]
call fcn.0059ee54
test al, al
je 0x5a1f38
lea ecx, [ebp - 0x20]
mov edx, dword [ebp - 4]
mov eax, dword [0x5b4624]
call fcn.0059ec84
mov eax, dword [ebp - 0x20]
mov edx, 0x5a2058
call fcn.0040541c
jne 0x5a1efb
mov eax, dword [ebp - 4]
add eax, 0xfffffff1
cmp eax, 0x30
ja case.0x5a1772.15
mov al, byte [eax + 0x5a1779]
jmp dword [eax*4 + 0x5a17aa]
mov eax, dword [ebp - 0xc]
call fcn.005a0be8
jmp case.0x5a1772.15
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0040a04c
mov ebx, eax
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov dword [eax + 0x496], ebx
mov eax, dword [0x5b19a8]
mov edx, ebx
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
call fcn.0044d470
jmp case.0x5a1772.15
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0040a04c
mov ebx, eax
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov dword [eax + 0x49a], ebx
mov eax, dword [0x5b19a8]
mov edx, ebx
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
call fcn.0044d494
jmp case.0x5a1772.15
push ebp
call fcn.005a1518
pop ecx
jmp case.0x5a1772.15
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 0xc]
call fcn.00409ab0
mov eax, dword [ebp - 0x24]
mov edx, 0x5a2064
call fcn.0047a178
test al, al
je 0x5a188e
mov eax, dword [0x5b1c4c]
mov eax, dword [eax]
call fcn.0046d480
jmp case.0x5a1772.15
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0xc]
call fcn.00409ab0
mov eax, dword [ebp - 0x28]
mov edx, 0x5a2078
call fcn.0047a178
test al, al
je 0x5a18d6
mov eax, dword [0x5b1c4c]
mov eax, dword [eax]
call fcn.0046d530
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
cmp byte [eax + 0x22b], 2
je 0x5a1934
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov dl, 2
call fcn.00468038
jmp 0x5a1934
mov eax, dword [0x5b1c4c]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_IsIconic
test eax, eax
je 0x5a18f8
mov eax, dword [0x5b1c4c]
mov eax, dword [eax]
call fcn.0046d530
jmp 0x5a1934
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
cmp byte [eax + 0x22b], 2
jne 0x5a1918
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
xor edx, edx
call fcn.00468038
jmp 0x5a1934
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x4bc]
test eax, eax
je 0x5a1934
mov edx, dword [0x5b19a8]
call fcn.0053ef30
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
cmp dword [eax + 0x4bc], 0
jne case.0x5a1772.15
mov eax, dword [0x5b1c4c]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_SetForegroundWindow
mov eax, dword [0x5b1c4c]
mov eax, dword [eax]
mov eax, dword [eax + 0x44]
call fcn.0045465c
push eax
call sub.user32.dll_SetActiveWindow
jmp case.0x5a1772.15
mov dword [ebp - 4], 0xfffffffe
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0xc]
call fcn.00409ab0
mov eax, dword [ebp - 0x2c]
mov edx, 0x5a208c
call fcn.0047a178
test al, al
je 0x5a19a0
mov al, 1
mov dword [ebp - 4], 0xffffffff
jmp 0x5a19d7
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0xc]
call fcn.00409ab0
mov eax, dword [ebp - 0x30]
mov edx, 0x5a209c
call fcn.0047a178
test al, al
je 0x5a19c0
mov al, 2
jmp 0x5a19d7
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
cmp byte [eax + 0x3a8], 2
jne 0x5a19d5
xor eax, eax
mov dword [ebp - 4], eax
xor eax, eax
mov edx, dword [0x5b19a8]
mov edx, dword [edx]
cmp al, byte [edx + 0x3a8]
je case.0x5a1772.15
mov edx, dword [0x5b19a8]
mov edx, dword [edx]
mov ebx, eax
mov byte [edx + 0x3a8], bl
mov eax, dword [0x5b19a8]
cmp bl, 1
je 0x5a1a24
lea edx, [ebp - 0x34]
mov eax, dword [0x5b19a8]
xor eax, eax
mov al, bl
call fcn.00409ed4
mov edx, dword [ebp - 0x34]
xor ecx, ecx
mov ax, 0x4d6
call fcn.005730d4
push 0x13
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 4]
push eax
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
call fcn.0045465c
push eax
call sub.user32.dll_SetWindowPos
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov bl, byte [eax + 0x3a8]
cmp bl, 1
jne 0x5a1a75
lea edx, [ebp - 0x38]
mov eax, dword [0x5b19a8]
xor eax, eax
mov al, bl
call fcn.00409ed4
mov edx, dword [ebp - 0x38]
xor ecx, ecx
mov ax, 0x4d6
call fcn.005730d4
mov eax, dword [0x5b17f0]
cmp byte [eax], 0
je case.0x5a1772.15
xor edx, edx
mov eax, 3
call fcn.0053c114
jmp case.0x5a1772.15
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
call fcn.0044d704
mov dword [ebp - 0x14], eax
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0040a04c
mov ebx, eax
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov al, byte [eax + 0x3a6]
sub al, 1
je 0x5a1ac4
sub al, 2
jne 0x5a1af1
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov ecx, dword [eax + 0x348]
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
sub ecx, dword [eax + 0x340]
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov edx, ebx
call fcn.00554010
jmp 0x5a1baf
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
call fcn.0044d704
cmp ebx, eax
jge 0x5a1b25
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x308]
mov edx, ebx
call fcn.0044d4bc
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov edx, ebx
call fcn.00466ee0
jmp 0x5a1b47
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov edx, ebx
call fcn.00466ee0
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x308]
mov edx, ebx
call fcn.0044d4bc
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
add ebx, dword [eax + 0x33c]
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov dword [eax + 0x344], ebx
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x308]
call fcn.0053f768
mov esi, eax
dec esi
test esi, esi
jl 0x5a1baf
inc esi
xor ebx, ebx
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x308]
mov edx, ebx
call fcn.0053f73c
xor edx, edx
call fcn.0042500c
mov edx, dword [0x5b19a8]
mov edx, dword [edx]
add edx, 0x33c
call fcn.00537ed0
inc ebx
dec esi
jne 0x5a1b7d
push 0
push 1
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
xor ecx, ecx
mov dx, 0x4ce
call fcn.00556a58
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
cmp dword [eax + 0x474], 0
jbe case.0x5a1772.15
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
call fcn.0044d704
cmp eax, dword [ebp - 0x14]
je case.0x5a1772.15
push 0x3f
push 0
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov edx, dword [eax + 0x474]
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
xor ecx, ecx
call fcn.0055356c
jmp case.0x5a1772.15
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
call fcn.0044d748
mov dword [ebp - 0x18], eax
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0040a04c
mov ebx, eax
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov al, byte [eax + 0x3a6]
sub al, 1
je 0x5a1c42
sub al, 2
jne 0x5a1c6f
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov edx, dword [eax + 0x344]
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
sub edx, dword [eax + 0x33c]
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov ecx, ebx
call fcn.00554010
jmp 0x5a1d2d
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
call fcn.0044d748
cmp ebx, eax
jge 0x5a1ca3
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x308]
mov edx, ebx
call fcn.0044d4e0
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov edx, ebx
call fcn.00466f10
jmp 0x5a1cc5
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov edx, ebx
call fcn.00466f10
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x308]
mov edx, ebx
call fcn.0044d4e0
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
add ebx, dword [eax + 0x340]
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov dword [eax + 0x348], ebx
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x308]
call fcn.0053f768
mov esi, eax
dec esi
test esi, esi
jl 0x5a1d2d
inc esi
xor ebx, ebx
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x308]
mov edx, ebx
call fcn.0053f73c
xor edx, edx
call fcn.0042500c
mov edx, dword [0x5b19a8]
mov edx, dword [edx]
add edx, 0x33c
call fcn.00537ed0
inc ebx
dec esi
jne 0x5a1cfb
push 0
push 1
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
xor ecx, ecx
mov dx, 0x4ce
call fcn.00556a58
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
cmp dword [eax + 0x474], 0
jbe case.0x5a1772.15
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
call fcn.0044d748
cmp eax, dword [ebp - 0x18]
je case.0x5a1772.15
push 0x3f
push 0
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov edx, dword [eax + 0x474]
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
xor ecx, ecx
call fcn.0055356c
jmp case.0x5a1772.15
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov edx, dword [ebp - 0xc]
call fcn.0044dd30
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x4bc]
test eax, eax
je case.0x5a1772.15
mov edx, dword [0x5b19a8]
mov edx, dword [ebp - 0xc]
call fcn.0053ed50
jmp case.0x5a1772.15
mov eax, dword [0x5b1c4c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xc]
call fcn.0046d6f8
jmp case.0x5a1772.15
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
add eax, 0x390
mov edx, dword [ebp - 0xc]
call fcn.00405048
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
cmp dword [eax + 0x390], 0
seta al
mov edx, dword [0x5b19a8]
mov edx, dword [edx]
mov byte [edx + 0x397], al
jmp case.0x5a1772.15
cmp dword [ebp - 0xc], 0
jne 0x5a1e2c
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov byte [eax + 0x396], 0
jmp case.0x5a1772.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 [0x5b19a8]
mov eax, dword [eax]
mov byte [eax + 0x396], bl
mov eax, dword [0x5b19a8]
test bl, bl
jne case.0x5a1772.15
mov ebx, dword [0x5b1a54]
mov ebx, dword [ebx]
lea edx, [ebp - 0x3c]
mov eax, 0x130
call ebx
mov eax, dword [ebp - 0x3c]
call fcn.005a0b14
jmp case.0x5a1772.15
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0040a04c
mov edx, dword [0x5b19a8]
mov edx, dword [edx]
mov dword [edx + 0x4b4], eax
mov eax, 0x5a20b0
call fcn.005a1390
mov eax, 0x5a20c8
call fcn.005a1390
mov eax, 0x5a20d4
call fcn.005a1390
mov eax, 0x5a20f0
call fcn.005a1390
jmp case.0x5a1772.15
mov eax, dword [ebp - 0xc]
call fcn.004052d0
dec eax
jne 0x5a1edb
mov eax, dword [ebp - 0xc]
mov al, byte [eax]
mov edx, dword [0x5b1e78]
mov byte [edx], al
jmp case.0x5a1772.15
mov eax, dword [0x5b1ef0]
mov eax, dword [eax]
mov cl, 0x2e
mov edx, 0xe
call fcn.0040d7f4
mov edx, dword [0x5b1e78]
mov byte [edx], al
jmp case.0x5a1772.15
mov byte [ebp - 0xd], 0
mov ebx, dword [0x5b1a54]
mov ebx, dword [ebx]
lea edx, [ebp - 0x44]
mov eax, 0xe5
call ebx
push dword [ebp - 0x44]
push 0x5a210c
push dword [ebp - 8]
push 0x5a2118
lea eax, [ebp - 0x40]
mov edx, 4
call fcn.00405390
mov eax, dword [ebp - 0x40]
call fcn.005a0b14
jmp case.0x5a1772.15
cmp dword [ebp - 0xc], 0
jbe case.0x5a1772.15
xor eax, eax
push ebp
push 0x5a1fad
push dword fs:[eax]
mov dword fs:[eax], esp
push dword [ebp - 8]
push 0x5a2124
push dword [ebp - 0xc]
lea eax, [ebp - 0x48]
mov edx, 3
call fcn.00405390
mov edx, dword [ebp - 0x48]
mov eax, dword [0x5b4628]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov dword [ebp - 4], eax
mov eax, dword [0x5b17f0]
cmp byte [eax], 0
je 0x5a1fa3
mov al, byte [0x5b1714]
push eax
push 0
lea ecx, [ebp - 0x4c]
mov edx, dword [ebp - 4]
mov eax, dword [0x5b4628]
call fcn.0059ec84
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 8]
xor eax, eax
call fcn.0053c078
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp case.0x5a1772.15
cmp byte [ebp - 0xd], 0
je 0x5a1fec
mov eax, dword [ebp - 0xc]
push eax
push 1
lea edx, [ebp - 0x54]
mov eax, dword [ebp - 8]
call fcn.004099a0
mov eax, dword [ebp - 0x54]
lea edx, [ebp - 0x50]
call fcn.0059f924
mov ecx, dword [ebp - 0x50]
mov eax, dword [0x5b19a8]
mov eax, dword [eax]
mov dx, 0x4ca
call fcn.00556a58
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5a201b
lea eax, [ebp - 0x54]
mov edx, 0xf
call fcn.00405018
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00405018
ret