Function at 0x23a25480
Capabilities:
Query environment variable

Disassembly:
push 0xffffffffffffffff
push 0x23bd01de
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb0
push ebx
push ebp
push esi
mov ebp, ecx
push edi
lea ecx, [esp + 0x50]
call fcn.23a08700
mov eax, dword [esp + 0xd0]
push eax
lea ecx, [esp + 0x54]
mov dword [esp + 0xcc], 0
call fcn.23a08e80
mov esi, dword [esp + 0xb4]
mov eax, dword [esp + 0xb8]
cmp esi, eax
jbe 0x23a254e4
call fcn.23a49e3d
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x10], ecx
mov ebx, esi
lea edi, [esi + 0x24]
mov esi, eax
cmp dword [esp + 0xb4], eax
jbe 0x23a25508
call fcn.23a49e3d
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x23a25515
cmp ecx, dword [esp + 0xa8]
je 0x23a2551e
call fcn.23a49e3d
mov ecx, dword [esp + 0x10]
cmp ebx, esi
je 0x23a25847
test ecx, ecx
jne 0x23a25549
call fcn.23a49e3d
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x23a2553b
call fcn.23a49e3d
mov esi, 8
cmp dword [edi + 0x14], esi
jb 0x23a2554d
mov eax, dword [edi]
jmp 0x23a2554f
mov eax, dword [ecx]
jmp 0x23a25531
mov eax, edi
push str.Path
push eax
call fcn.23a496bc
add esp, 8
test eax, eax
jne 0x23a255de
mov eax, dword [ebp + 0x2c]
mov edx, dword [eax - 8]
lea esi, [ebp + 0x2c]
sub eax, 0x10
mov ecx, 1
sub ecx, dword [eax + 0xc]
sub edx, 0x400
or ecx, edx
jge 0x23a2558b
push 0x400
mov ecx, esi
call fcn.23a10520
cmp dword [edi + 0x30], 8
mov ecx, dword [esi]
jb 0x23a25598
mov eax, dword [edi + 0x1c]
jmp 0x23a2559b
lea eax, [edi + 0x1c]
push 0x400
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x23a255c3
push ecx
push eax
call fcn.23a4a8f0
add esp, 8
test eax, eax
jl 0x23a2583d
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x23a2583d
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
xor edx, edx
mov word [ecx + eax*2], dx
jmp 0x23a2580a
cmp dword [edi + 0x14], esi
jb 0x23a255e7
mov eax, dword [edi]
jmp 0x23a255e9
mov eax, edi
push str.RestorePoint
push eax
call fcn.23a496bc
add esp, 8
test eax, eax
jne 0x23a25631
push 0x23c40f6c
push str.create
mov ecx, ebx
call fcn.23a1c1f0
cmp word [eax], 0
je 0x23a2561f
push eax
call fcn.23a4a438
add esp, 4
test eax, eax
je 0x23a25628
or dword [ebp + 0x20], 2
jmp 0x23a2580a
and dword [ebp + 0x20], 0xfffffffd
jmp 0x23a2580a
cmp dword [edi + 0x14], esi
jb 0x23a2563a
mov eax, dword [edi]
jmp 0x23a2563c
mov eax, edi
push str.Invisible
push eax
call fcn.23a496bc
add esp, 8
test eax, eax
jne 0x23a2565a
mov ecx, ebp
call fcn.23a12900
jmp 0x23a2580a
cmp dword [edi + 0x14], esi
jb 0x23a25663
mov eax, dword [edi]
jmp 0x23a25665
mov eax, edi
push str.Uninstall
push eax
call fcn.23a496bc
add esp, 8
test eax, eax
jne 0x23a256ad
push 0x23c40f6c
push str.register
mov ecx, ebx
call fcn.23a1c1f0
cmp word [eax], 0
je 0x23a2569b
push eax
call fcn.23a4a438
add esp, 4
test eax, eax
je 0x23a256a4
or dword [ebp + 0x20], 1
jmp 0x23a2580a
and dword [ebp + 0x20], 0xfffffffe
jmp 0x23a2580a
cmp dword [edi + 0x14], esi
jb 0x23a256b6
mov eax, dword [edi]
jmp 0x23a256b8
mov eax, edi
push str.Restart
push eax
call fcn.23a496bc
add esp, 8
test eax, eax
jne 0x23a256d6
or dword [ebp + 0x20], 0x80000000
jmp 0x23a2580a
cmp dword [edi + 0x14], esi
jb 0x23a256df
mov eax, dword [edi]
jmp 0x23a256e1
mov eax, edi
push str.Password
push eax
call fcn.23a496bc
add esp, 8
test eax, eax
jne 0x23a2574f
mov edx, dword [edi + 0x30]
lea eax, [edi + 0x1c]
cmp edx, esi
jb 0x23a25701
mov ecx, dword [eax]
jmp 0x23a25703
mov ecx, eax
cmp word [ecx], 0
je 0x23a2580a
cmp edx, esi
jb 0x23a25713
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x1c]
call fcn.23a01070
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x20]
lea ecx, [ebp + 0x39c]
push eax
mov byte [esp + 0xd4], 1
call fcn.23a02610
lea ecx, [esp + 0x18]
mov byte [esp + 0xc8], 0
call fcn.23a022f0
jmp 0x23a2580a
push str.ActivationKey
mov ecx, ebx
call fcn.23a08810
test al, al
je 0x23a257a5
cmp dword [edi + 0x30], esi
jb 0x23a25769
mov eax, dword [edi + 0x1c]
jmp 0x23a2576c
lea eax, [edi + 0x1c]
push eax
lea ecx, [esp + 0x38]
call fcn.23a01070
push 0xffffffffffffffff
push 0
lea edx, [esp + 0x3c]
lea ecx, [ebp + 0x3b8]
push edx
mov byte [esp + 0xd4], 2
call fcn.23a02610
lea ecx, [esp + 0x34]
mov byte [esp + 0xc8], 0
call fcn.23a022f0
jmp 0x23a2580a
push str.StartMenu
mov ecx, ebx
call fcn.23a08810
test al, al
je 0x23a2580a
push str.current
push 0x23be55bc
mov ecx, ebx
call fcn.23a1c1f0
mov esi, eax
push 0x23be417c
push esi
call fcn.23a496bc
add esp, 8
test eax, eax
jne 0x23a257e7
or dword [ebp + 0x20], 4
mov dword [ebp + 0x30], 1
jmp 0x23a2580a
push 0x23be55b0
push esi
call fcn.23a496bc
add esp, 8
test eax, eax
jne 0x23a257ff
and dword [ebp + 0x20], 0xfffffffb
jmp 0x23a2580a
or dword [ebp + 0x20], 4
mov dword [ebp + 0x30], 0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x23a25839
call fcn.23a49e3d
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x23a25823
call fcn.23a49e3d
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x10]
add ebx, 0x70
add edi, 0x70
jmp 0x23a254f4
mov eax, dword [eax]
jmp 0x23a25819
push 0x80070057
call fcn.23a0ef50
lea ecx, [esp + 0x50]
mov dword [esp + 0xc8], 0xffffffff
call fcn.23a09be0
mov ecx, dword [esp + 0xc0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xbc
ret 4