Function at 0x46f950
Capabilities:
Set environment variable

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffebc
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.0040414c
mov eax, dword [ebp - 0xc]
call fcn.0040414c
xor eax, eax
push ebp
push 0x4700ba
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 8]
call fcn.00408928
mov eax, dword [ebp - 0x30]
lea edx, [ebp - 0x2c]
call fcn.004088f4
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 8]
call fcn.00403db4
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0xc]
call fcn.00408928
mov eax, dword [ebp - 0x30]
lea edx, [ebp - 0x2c]
call fcn.004088f4
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0xc]
call fcn.00403db4
lea eax, [ebp - 0x30]
call fcn.004555e0
push dword [ebp - 0x30]
push 0x4700d0
mov eax, dword [0x47ff48]
push dword [eax]
lea eax, [ebp - 0x2c]
mov edx, 3
call fcn.00404058
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
call fcn.0047279c
mov eax, dword [0x9aa537]
mov dword [ebp - 0x24], eax
mov eax, dword [0x9aa127]
and eax, 0x40
cmp eax, 0x40
jne 0x46fa83
xor eax, eax
push ebp
push 0x46fa79
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x40f1c4]
call fcn.004030c8
mov ebx, eax
lea ecx, [ebp - 0x2c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e4]
mov eax, dword [eax + 0x58]
xor edx, edx
mov esi, dword [eax]
call dword [esi + 0xc]
mov edx, dword [ebp - 0x2c]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x34]
lea ecx, [ebp - 0x14]
xor edx, edx
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, ebx
call fcn.004030f8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46fa83
mov eax, dword [0x9aa127]
and eax, 0x10
cmp eax, 0x10
jne 0x46fac5
mov eax, dword [0x47fda4]
cmp dword [eax], 0x1770
jge 0x46faa5
lea eax, [ebp - 0x14]
call fcn.0046f7ac
cmp dword [ebp - 0x14], 0
jne 0x46fac5
call fcn.004555b0
mov dword [ebp - 0x34], eax
fild dword [ebp - 0x34]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x14]
call fcn.0040999c
mov eax, dword [0x9aa127]
and eax, 1
dec eax
jne 0x46fae3
lea eax, [ebp - 0x2c]
call fcn.00455344
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x14]
call fcn.00403fa0
mov eax, dword [0x9aa127]
and eax, 2
cmp eax, 2
jne 0x46fb15
call fcn.004555b0
mov dword [ebp - 0x34], eax
fild dword [ebp - 0x34]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x2c]
call fcn.0040999c
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x14]
call fcn.00403fa0
mov eax, dword [0x9aa127]
and eax, 4
cmp eax, 4
jne 0x46fb35
lea eax, [ebp - 0x2c]
call fcn.00455574
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x14]
call fcn.00403fa0
mov eax, dword [0x9aa127]
and eax, 8
cmp eax, 8
jne 0x46fb55
lea eax, [ebp - 0x20]
call fcn.00465e08
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 0x20]
call fcn.00403fa0
mov eax, dword [0x9aa127]
and eax, 0x20
cmp eax, 0x20
jne 0x46fb87
call fcn.0046f688
mov dword [ebp - 0x34], eax
fild dword [ebp - 0x34]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x2c]
call fcn.0040999c
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x14]
call fcn.00403fa0
mov eax, dword [ebp - 0x24]
mov ebx, dword [eax*4 + 0x9ab95f]
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x14]
lea edx, [ebp - 0x30]
mov eax, ebx
call fcn.004089c0
push dword [ebp - 0x30]
mov eax, dword [0x47ff48]
push dword [eax]
lea eax, [ebp - 0x2c]
mov edx, 3
call fcn.00404058
mov eax, dword [ebp - 0x2c]
lea edx, [ebp - 0x44]
call fcn.00453f84
lea ecx, [ebp - 0x44]
mov edx, 0x4700dc
mov eax, 0x4700f0
call fcn.0046f888
mov edx, dword [ebp - 0x10]
mov eax, 0x470104
call fcn.00404280
lea edx, [ebp - 0x10]
mov ecx, eax
mov eax, 1
xchg edx, eax
call fcn.004041dc
mov eax, dword [ebp - 0x10]
call fcn.00403f98
mov ecx, eax
sub ecx, 8
lea eax, [ebp - 0x10]
mov edx, 8
call fcn.004041dc
lea edx, [ebp - 0x10]
mov ecx, 5
mov eax, 0x470110
call fcn.00404224
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
call fcn.004088a4
cmp dword [ebp - 0x2c], 0
jne 0x46fc3d
lea eax, [ebp - 0x10]
mov edx, 0x47011c
call fcn.00403db4
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0x10]
call fcn.004086c0
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x10]
call fcn.00403db4
mov eax, dword [0x47ff94]
call fcn.00403d1c
cmp byte [0x9a9c5f], 0
je 0x46fc8b
push dword [ebp - 0x10]
push 0x470110
lea eax, [ebp - 0x2c]
mov edx, 0x9a9c5f
call fcn.00403f3c
push dword [ebp - 0x2c]
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00404058
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 0x10]
call fcn.00403db4
mov eax, dword [0x9aa537]
mov dword [ebp - 0x24], eax
mov edi, 1
mov esi, 0x9aa563
mov ebx, 0x9aa53b
mov dword [ebp - 0x28], 0x9a9d8d
lea eax, [ebp - 0x18]
mov edx, esi
call fcn.00403f3c
cmp dword [ebp - 0x18], 0
je 0x470092
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x14]
push dword [ebp - 8]
push dword [ebp - 0x18]
lea eax, [ebp - 0x2c]
mov edx, 3
call fcn.00404058
mov eax, dword [ebp - 0x2c]
lea edx, [ebp - 0x44]
call fcn.00453f84
lea ecx, [ebp - 0x44]
mov edx, 0x470130
mov eax, 0x4700f0
call fcn.0046f888
mov edx, dword [ebp - 0x10]
mov eax, 0x470104
call fcn.00404280
lea edx, [ebp - 0x10]
mov ecx, eax
mov eax, 1
xchg edx, eax
call fcn.004041dc
mov eax, dword [ebp - 0x10]
call fcn.00403f98
mov ecx, eax
sub ecx, 0x14
lea eax, [ebp - 0x10]
mov edx, 0x14
call fcn.004041dc
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0x10]
call fcn.004554b0
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x10]
call fcn.00403db4
mov eax, dword [ebp - 0xc]
call fcn.0040415c
push eax
mov eax, dword [ebp - 0x10]
call fcn.0040415c
pop edx
call fcn.00409298
xor eax, 0
jne 0x47007b
cmp dword [ebx], 1
jne 0x46ff45
cmp dword [0x9aa233], 0
jle 0x46fdd0
mov dl, 1
mov eax, dword [0x40f1c4]
call fcn.004030c8
mov ebx, eax
mov edx, dword [ebp - 0x10]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov edx, dword [ebp - 0x14]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov edx, dword [ebp - 8]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov edx, dword [0x47fce8]
mov edx, dword [edx]
lea eax, [ebp - 0x2c]
mov ecx, 0x47013c
call fcn.00403fe4
mov edx, dword [ebp - 0x2c]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, ebx
call fcn.004030f8
mov dword [0x9aa537], edi
mov eax, 0x9a9e1d
mov edx, dword [ebp - 0x10]
mov ecx, 0xff
call fcn.00403f74
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax*4 + 0x9ab95f]
call fcn.004089c0
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x144]
mov ecx, 0xff
call fcn.00403f74
lea edx, [ebp - 0x144]
mov eax, 0x9abd77
mov cl, 0xa
call fcn.00402bfc
mov eax, 0x9abd98
mov edx, dword [ebp - 8]
mov ecx, 0xff
call fcn.00403f74
mov byte [0x9a9e0f], 0
lea eax, [ebp - 0x30]
call fcn.004555e0
push dword [ebp - 0x30]
push 0x4700d0
mov eax, dword [0x47ff48]
push dword [eax]
lea eax, [ebp - 0x2c]
mov edx, 3
call fcn.00404058
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
call fcn.004725dc
mov edx, dword [0x47ff24]
mov edx, dword [edx]
lea eax, [ebp - 0x2c]
mov ecx, 0x470154
call fcn.00403fe4
mov ecx, dword [ebp - 0x2c]
mov dl, 1
mov eax, dword [0x45419c]
call fcn.00454244
mov ebx, eax
mov eax, dword [0x47ff7c]
cmp dword [eax], 2
je 0x46feaa
mov ecx, 0x47016c
mov dl, 1
mov eax, dword [0x45419c]
call fcn.00454244
mov ebx, eax
mov eax, dword [ebp - 0x10]
push eax
mov edx, dword [0x47ff48]
mov edx, dword [edx]
mov ecx, 0x470180
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 4]
mov dl, 1
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx - 4]
mov eax, dword [0x47fd3c]
mov edx, 0x470190
call fcn.00403d70
lea eax, [ebp - 0x1c]
lea edx, [esi + 0xa00]
call fcn.00403f3c
xor eax, eax
push ebp
push 0x46ff36
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
call fcn.0040415c
mov ebx, eax
push ebx
push 0x47019c
call sub.kernel32.dll_SetEnvironmentVariableA
push ebx
push 0x4701a8
call sub.kernel32.dll_SetEnvironmentVariableA
mov eax, dword [ebp - 0x1c]
call fcn.0040415c
push eax
push 0x4701b4
call sub.kernel32.dll_SetEnvironmentVariableA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x470092
cmp dword [ebx], 0
mov dword [0x9aa537], edi
xor eax, eax
mov dword [0x9a9f1d], eax
mov byte [0x9a9e0f], 0
call fcn.0046dd08
call fcn.00409e90
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0x2c]
call fcn.0040aa78
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x144]
mov ecx, 0xff
call fcn.00403f74
lea edx, [ebp - 0x144]
mov eax, dword [ebp - 0x28]
mov cl, 0xc
call fcn.00402bfc
call fcn.00409e90
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0x2c]
call fcn.0040aa78
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x144]
mov ecx, 0xff
call fcn.00403f74
lea edx, [ebp - 0x144]
mov eax, 0x9abd82
mov cl, 0xa
call fcn.00402bfc
lea eax, [ebp - 0x30]
call fcn.004555e0
push dword [ebp - 0x30]
push 0x4700d0
mov eax, dword [0x47ff48]
push dword [eax]
lea eax, [ebp - 0x2c]
mov edx, 3
call fcn.00404058
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
call fcn.004725dc
mov eax, dword [0x47fd3c]
mov edx, 0x4701c4
call fcn.00403d70
lea eax, [ebp - 0x1c]
lea edx, [esi + 0xa00]
call fcn.00403f3c
xor eax, eax
push ebp
push 0x47006f
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
call fcn.0040415c
push eax
push 0x4701b4
call sub.kernel32.dll_SetEnvironmentVariableA
mov eax, dword [ebx - 0xa5b]
push eax
push 0x4701d4
call sub.kernel32.dll_SetEnvironmentVariableA
call fcn.0040cfc8
mov eax, dword [ebx - 0xa33]
push eax
push 0x4701e0
call sub.kernel32.dll_SetEnvironmentVariableA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x470092
inc edi
add dword [ebp - 0x28], 0xd
add ebx, 4
add esi, 0x100
cmp edi, 0xb
jne 0x46fcb4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4700c1
lea eax, [ebp - 0x30]
mov edx, 2
call fcn.00403d40
lea eax, [ebp - 0x20]
mov edx, 7
call fcn.00403d40
ret