Function at 0x496758
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe6c
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x194], edx
mov dword [ebp - 0x18c], edx
mov dword [ebp - 0x190], edx
mov dword [ebp - 0x188], edx
mov dword [ebp - 0x184], edx
mov dword [ebp - 0x180], edx
mov dword [ebp - 0x17c], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
lea eax, [ebp - 0x178]
mov edx, dword [0x407b78]
call fcn.00404424
xor eax, eax
push ebp
push 0x496cdf
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [0x4bdd70], eax
xor eax, eax
mov dword [0x4bdd6c], eax
mov byte [ebp - 0x1a], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x710]
mov dl, byte [eax + 0x1f5]
mov byte [ebp - 5], dl
mov dl, 2
call fcn.0046a0c8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x710]
call fcn.0047207c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x710]
mov eax, dword [eax + 0x20c]
call fcn.00468480
mov eax, dword [0x4bdbcc]
call fcn.004750d0
test al, al
jne 0x496834
lea ecx, [ebp - 0x17c]
mov edx, dword [0x4bdbf0]
mov eax, dword [ebp - 4]
call fcn.00497b08
mov edx, dword [ebp - 0x17c]
mov eax, 0x4bdbcc
call fcn.00403c24
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x53c]
cmp byte [eax + 0x2c], 0
je 0x496867
lea eax, [ebp - 0x180]
mov ecx, dword [0x4bdbcc]
mov edx, 0x496cf8
call fcn.00403e9c
mov edx, dword [ebp - 0x180]
mov eax, dword [ebp - 4]
call fcn.004a3f70
lea eax, [ebp - 0x184]
mov ecx, 0x496d10
mov edx, dword [0x4bdbcc]
call fcn.00403e9c
mov eax, dword [ebp - 0x184]
lea ecx, [ebp - 0x178]
mov edx, 0x3f
call fcn.00408ee4
mov ebx, eax
test ebx, ebx
jne 0x496a80
test byte [ebp - 0x170], 0x10
jne 0x4968bc
mov eax, dword [ebp - 0x16c]
mov edx, 0x496d1c
call fcn.00403f60
je 0x4968bc
xor eax, eax
jmp 0x4968be
mov al, 1
mov byte [ebp - 0x19], al
mov eax, dword [ebp - 0x16c]
mov edx, 0x496d28
call fcn.00403f60
je 0x496a6b
mov eax, dword [ebp - 0x16c]
mov edx, 0x496d1c
call fcn.00403f60
jne 0x4968f9
mov eax, dword [ebp - 4]
call fcn.00490060
test al, al
jne 0x496a6b
mov ecx, dword [0x4bdd64]
mov edx, dword [ebp - 0x16c]
mov eax, dword [ebp - 4]
call fcn.004a8580
test al, al
jne 0x49692e
cmp byte [ebp - 0x19], 0
je 0x496a6b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x588]
cmp byte [eax + 0x2c], 0
jne 0x496a6b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x710]
mov eax, dword [eax + 0x20c]
call fcn.00468310
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x16c]
mov eax, dword [ebp - 0x20]
call fcn.00467de4
xor eax, eax
push ebp
push 0x49698b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x178]
call fcn.00409228
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0xc]
mov edx, dword [0x4bdd84]
call fcn.0040acac
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x49699d
cmp byte [ebp - 0x19], 0
je 0x4969eb
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 8]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebp - 0x16c]
mov edx, 0x496d1c
call fcn.00403f60
je 0x4969d9
inc dword [0x4bdd6c]
mov ecx, 1
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.00467f88
jmp 0x496a4c
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.00467f88
mov byte [ebp - 0x1a], 1
jmp 0x496a4c
mov eax, dword [ebp - 0x144]
xor edx, edx
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [ebp - 0x140]
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
fild qword [ebp - 0x18]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x188]
call fcn.0048f0b4
mov edx, dword [ebp - 0x188]
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 8]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov ecx, 3
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.00467f88
inc dword [0x4bdd70]
mov eax, dword [ebp - 0x20]
cmp dword [eax + 0x10], 0
jne 0x496a5d
lea eax, [ebp - 0xc]
call fcn.00403bd0
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x34]
lea eax, [ebp - 0x178]
call fcn.00408f34
mov ebx, eax
test ebx, ebx
je 0x49689d
lea eax, [ebp - 0x178]
call fcn.00408f58
cmp byte [0x4bdc88], 0
je 0x496af6
mov eax, dword [0x4bdbcc]
call fcn.00403e50
cmp eax, 3
jle 0x496af6
cmp byte [ebp - 0x1a], 0
jne 0x496af6
mov eax, dword [ebp - 4]
call fcn.00490060
test al, al
jne 0x496af6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x710]
mov eax, dword [eax + 0x20c]
call fcn.00468310
mov ebx, eax
mov edx, 0x496d1c
mov eax, ebx
call fcn.00467de4
mov eax, dword [ebx + 8]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebx + 8]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x34]
xor ecx, ecx
xor edx, edx
mov eax, ebx
call fcn.00467f88
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x710]
call fcn.004720b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x710]
mov dl, byte [ebp - 5]
call fcn.0046a0c8
cmp byte [0x4bdc46], 0
je 0x496b3c
mov eax, dword [0x4bdbc4]
cmp byte [eax + 0x47], 0
je 0x496b3c
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x710]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.004965c4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x710]
call fcn.00472090
mov eax, dword [ebp - 4]
call fcn.00496fb0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x53c]
cmp byte [eax + 0x2c], 0
je 0x496c87
mov eax, dword [ebp - 4]
call fcn.00490060
test al, al
jne 0x496c87
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x710]
mov eax, dword [eax + 0x20c]
call fcn.0046838c
mov esi, eax
dec esi
test esi, esi
jl 0x496c6b
inc esi
xor ebx, ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x710]
mov eax, dword [eax + 0x20c]
mov edx, ebx
call fcn.004683bc
cmp dword [eax + 0x10], 3
jne 0x496c22
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x710]
mov eax, dword [eax + 0x20c]
mov edx, ebx
call fcn.004683bc
push dword [eax + 0x24]
push 0x496d34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x710]
mov eax, dword [eax + 0x20c]
mov edx, ebx
call fcn.004683bc
mov eax, dword [eax + 8]
lea ecx, [ebp - 0x190]
xor edx, edx
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0x190]
push 0x496d40
lea eax, [ebp - 0x18c]
mov edx, 4
call fcn.00403f10
mov edx, dword [ebp - 0x18c]
mov eax, dword [ebp - 4]
call fcn.004a3f70
jmp 0x496c63
push 0x496d4c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x710]
mov eax, dword [eax + 0x20c]
mov edx, ebx
call fcn.004683bc
push dword [eax + 0x24]
push 0x496d58
lea eax, [ebp - 0x194]
mov edx, 3
call fcn.00403f10
mov edx, dword [ebp - 0x194]
mov eax, dword [ebp - 4]
call fcn.004a3f70
inc ebx
dec esi
jne 0x496b97
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x53c]
cmp byte [eax + 0x2c], 0
je 0x496c87
mov edx, 0x496d64
mov eax, dword [ebp - 4]
call fcn.004a3f70
mov eax, dword [0x4bdbcc]
call fcn.00404014
push eax
call sub.kernel32.dll_SetCurrentDirectoryA
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x710]
mov eax, dword [ebp - 4]
call fcn.00490148
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x496ce6
lea eax, [ebp - 0x194]
mov edx, 7
call fcn.00403bf4
lea eax, [ebp - 0x178]
mov edx, dword [0x407b78]
call fcn.004044f0
lea eax, [ebp - 0xc]
call fcn.00403bd0
ret