Function at 0x426c30
Capabilities:
Check if file exists
Get file attributes
Query environment variable
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x557e7e
mov eax, dword fs:[0]
push eax
mov eax, 0x273c
call fcn.0053f7f0
mov eax, dword [0x5d7b20]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x271c], ecx
xor edi, edi
push 0xa
lea ecx, [ebp - 0x2748]
mov dword [ebp - 4], edi
call fcn.0045900d
push fcn.00417700
push fcn.00404770
push 8
push 4
lea eax, [ebp - 0x2664]
push eax
mov byte [ebp - 4], 1
call fcn.0053f788
push 0x568928
lea ecx, [ebp - 0x2720]
mov byte [ebp - 4], 2
mov dword [ebp - 0x272c], edi
call fcn.00406430
push 0x568928
lea ecx, [ebp - 0x2704]
mov byte [ebp - 4], 3
call fcn.00406430
push 0x568928
lea ecx, [ebp - 0x2718]
mov byte [ebp - 4], 4
call fcn.00406430
push 0x2002
lea ecx, [ebp - 0x2644]
push edi
push ecx
mov byte [ebp - 4], 5
mov dword [ebp - 0x2710], edi
mov dword [ebp - 0x2728], edi
call fcn.0053e550
mov eax, dword [ebp + 8]
add esp, 0xc
push 0x2c
lea edx, [ebp - 0x2748]
push edx
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x14], esp
mov esi, esp
push eax
mov dword [ebp - 0x2724], edi
call fcn.00404610
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.00419180
mov eax, dword [ebp - 0x273c]
lea ecx, [eax - 7]
add esp, 0xc
cmp ecx, 1
ja 0x427fb1
mov ebx, dword [ebp - 0x2744]
mov dword [ebp - 0x2714], edi
cmp eax, edi
jle 0x426e9b
lea esi, [ebp - 0x2664]
lea esp, [esp]
call fcn.0044c104
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x426fb2
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x270c], eax
mov byte [ebp - 4], 6
mov eax, ebx
test ebx, ebx
je 0x426fbc
mov ebx, dword [ebx]
add eax, 8
push eax
mov ecx, esi
call fcn.00405460
mov ecx, dword [esi]
cmp dword [ecx - 0xc], 0x100
jle 0x426e36
push 0x100
push 0
lea edx, [ebp - 0x2708]
push edx
mov ecx, esi
call fcn.0040b930
push str._and_more..._
push eax
lea eax, [ebp - 0x1c]
push eax
mov byte [ebp - 4], 7
call fcn.00418e00
add esp, 0xc
push eax
lea ecx, [ebp - 0x270c]
mov byte [ebp - 4], 8
call fcn.00405460
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
mov byte [ebp - 4], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426e0e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x2708]
add eax, 0xfffffff0
mov byte [ebp - 4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426e42
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x426e42
push esi
lea ecx, [ebp - 0x270c]
call fcn.00405460
mov edi, dword [ebp - 0x270c]
mov ecx, dword [ebp - 0x2714]
push edi
push ecx
push str.Parameter__d____s_n
call fcn.00415550
lea eax, [edi - 0x10]
add esp, 0xc
mov byte [ebp - 4], 5
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x426e7d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x2714]
inc eax
add esi, 4
mov dword [ebp - 0x2714], eax
cmp eax, dword [ebp - 0x273c]
jl 0x426d60
xor edi, edi
mov eax, dword [ebp - 0x2648]
cmp dword [eax - 0xc], edi
je 0x426fc1
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x14], esp
mov esi, esp
push eax
call fcn.00404610
add eax, 0x10
mov dword [esi], eax
mov esi, dword [ebp - 0x271c]
add esp, 4
mov ecx, esi
call fcn.00425f70
cmp eax, edi
jne 0x426fc7
push str.CUninstallActions::SetVariable_IsMetConditions_failed._n
push 0x56dce8
call fcn.00415550
mov eax, dword [ebp - 0x2718]
add eax, 0xfffffff0
add esp, 8
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426f0e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x2704]
add eax, 0xfffffff0
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426f34
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x2720]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426f5a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push fcn.00417700
push 8
push 4
lea ecx, [ebp - 0x2664]
push ecx
mov byte [ebp - 4], 1
call fcn.0053ee28
lea ecx, [ebp - 0x2748]
mov byte [ebp - 4], 0
call fcn.0045913b
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x426fa8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
jmp 0x4280ac
push 0x80004005
call fcn.00403e70
call fcn.00449c8f
mov esi, dword [ebp - 0x271c]
mov ecx, dword [ebp - 0x2664]
push str.SET_VARUNSIGNED
push ecx
call fcn.0053e2bf
add esp, 8
cmp eax, edi
jne 0x426fe3
xor edi, edi
jmp 0x427025
mov edx, dword [ebp - 0x2664]
push 0xd
push str.SET_VARSIGNED
push edx
call fcn.0053dcfd
add esp, 0xc
test eax, eax
jne 0x427002
lea edi, [eax + 1]
jmp 0x427025
mov eax, dword [ebp - 0x2664]
push 0xd
push str.SET_VARSTRING
push eax
call fcn.0053dcfd
add esp, 0xc
test eax, eax
jne 0x427fa7
mov edi, 2
mov ecx, dword [ebp - 0x2658]
push str.HKLM
push ecx
mov dword [ebp - 0x2714], edi
call fcn.0053e2bf
add esp, 8
test eax, eax
jne 0x4271d7
mov dword [ebp - 0x270c], reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x18]
call fcn.0043f020
mov edx, dword [ebp - 0x2654]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
mov byte [ebp - 4], 9
or ecx, eax
jge 0x427085
push 0
lea ecx, [ebp - 0x2654]
call fcn.004045b0
mov edx, dword [ebp - 0x2654]
mov ebx, dword [ebp - 0x270c]
push edx
push ebx
lea ecx, [ebp - 0x18]
call fcn.0043f030
test eax, eax
je 0x42716e
mov edx, dword [ebp - 0x2650]
mov eax, dword [edx - 0xc]
xor ecx, ecx
test eax, eax
sete cl
mov eax, 1
sub eax, dword [edx - 4]
mov dword [ebp - 0x2724], ecx
mov ecx, dword [edx - 8]
or ecx, eax
jge 0x4270d5
push 0
lea ecx, [ebp - 0x2650]
call fcn.004045b0
mov edx, dword [ebp - 0x2650]
push edx
lea ecx, [ebp - 0x18]
call fcn.0043f120
test eax, eax
je 0x42716e
mov edx, dword [ebp - 0x2650]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
mov dword [ebp - 0x2724], 1
or ecx, eax
jge 0x427118
push 0
lea ecx, [ebp - 0x2650]
call fcn.004045b0
mov edx, dword [ebp - 0x2650]
push edx
lea ecx, [ebp - 0x18]
call fcn.0043f150
mov esi, eax
mov dword [ebp - 0x2708], esi
test edi, edi
je 0x427596
cmp edi, 1
je 0x427596
lea ecx, [ebp - 0x26a8]
call fcn.0043f760
xor edi, edi
xor ebx, ebx
mov byte [ebp - 4], 0xb
cmp esi, 1
je 0x4273fa
cmp esi, 2
je 0x4273fa
lea ecx, [ebp - 0x26a8]
mov byte [ebp - 4], 9
call fcn.0043f790
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 5
call fcn.0043f640
mov eax, dword [ebp - 0x2714]
sub eax, 0
je 0x4279cd
dec eax
je 0x427976
dec eax
jne 0x427a0a
mov edx, dword [ebp - 0x264c]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x4271bf
push 0
lea ecx, [ebp - 0x264c]
call fcn.004045b0
mov edx, dword [ebp - 0x264c]
mov ecx, dword [ebp - 0x271c]
lea eax, [ebp - 0x2704]
push eax
push edx
call fcn.0041b150
jmp 0x427a0a
mov edx, dword [ebp - 0x2658]
push str.HKCU
push edx
call fcn.0053e2bf
add esp, 8
test eax, eax
jne 0x4271fe
mov dword [ebp - 0x270c], SysReAllocStringLen
jmp 0x427051
mov eax, dword [ebp - 0x2658]
push str.HKCR
push eax
call fcn.0053e2bf
add esp, 8
test eax, eax
jne 0x427225
mov dword [ebp - 0x270c], SysReAllocStringLen
jmp 0x427051
mov ecx, dword [ebp - 0x2658]
push str.HKCC
push ecx
call fcn.0053e2bf
add esp, 8
test eax, eax
jne 0x42724c
mov dword [ebp - 0x270c], VariantCopy
jmp 0x427051
mov edx, dword [ebp - 0x2658]
push str.DIRECT
push edx
call fcn.0053e2bf
add esp, 8
test eax, eax
jne 0x427353
mov eax, dword [ebp - 0x264c]
push 0x1000
push eax
lea ecx, [ebp - 0x2644]
push 0x1001
push ecx
call fcn.0053f95d
add esp, 0x10
lea eax, [ebp - 0x2710]
push eax
lea ecx, [ebp - 0x2644]
push str.0x_x
push ecx
call fcn.0053ef82
add esp, 0xc
test eax, eax
jg 0x4272c5
push 0xa
lea edx, [ebp - 0x2728]
push edx
lea eax, [ebp - 0x2644]
push eax
call fcn.0053f49b
add esp, 0xc
mov dword [ebp - 0x2710], eax
mov edx, dword [ebp - 0x264c]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x4272ed
push 0
lea ecx, [ebp - 0x264c]
call fcn.004045b0
mov edx, dword [ebp - 0x264c]
lea ecx, [ebp - 0x2704]
push ecx
push edx
mov ecx, esi
call fcn.0041b150
mov eax, dword [ebp - 0x2714]
cmp eax, 1
jne 0x427653
mov edx, dword [ebp - 0x2664]
push str.SET_VARSIGNED_EXIST
push edx
call fcn.0053e2bf
add esp, 8
test eax, eax
jne 0x427a0a
mov esi, dword [ebp - 0x2724]
mov eax, str.true
test esi, esi
jne 0x42733b
mov eax, str.false
push eax
push str.CUninstallActions::SetVariable_SET_VARSIGNED_EXIST_bExist___1_s_
push 4
call fcn.00403ab0
mov dword [ebp - 0x2710], esi
jmp 0x427a07
mov edx, dword [ebp - 0x2658]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x42737b
push 0
lea ecx, [ebp - 0x2658]
call fcn.004045b0
mov edx, dword [ebp - 0x2658]
lea eax, [ebp - 0x2720]
push eax
push edx
mov ecx, esi
call fcn.0041b150
mov edx, dword [ebp - 0x2720]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x4273b2
push 0
lea ecx, [ebp - 0x2720]
call fcn.004045b0
mov edx, dword [ebp - 0x2720]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edx, dword [ebp - 0x2720]
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
push edx
mov edx, dword [ebp - 0x2650]
push 0x1001
lea eax, [ebp - 0x2644]
push eax
mov eax, dword [ebp - 0x2654]
mov dword [ebp - 0x2724], ecx
mov ecx, dword [ebp - 0x264c]
push ecx
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x427288
mov edx, dword [ebp - 0x2654]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x427422
push 0
lea ecx, [ebp - 0x2654]
call fcn.004045b0
mov edx, dword [ebp - 0x2654]
push edx
mov edx, dword [ebp - 0x270c]
push edx
lea ecx, [ebp - 0x26a8]
call fcn.0043f030
test eax, eax
je 0x427576
mov edx, dword [ebp - 0x2650]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x427465
push 0
lea ecx, [ebp - 0x2650]
call fcn.004045b0
mov edx, dword [ebp - 0x2650]
push edx
lea ecx, [ebp - 0x26a8]
call fcn.0043f460
mov dword [ebp - 0x270c], eax
test eax, eax
jne 0x4274c5
mov edx, dword [ebp - 0x264c]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
mov dword [ebp - 0x272c], 1
or ecx, eax
jge 0x4274ad
push 0
lea ecx, [ebp - 0x264c]
call fcn.004045b0
mov edx, dword [ebp - 0x264c]
mov ecx, dword [ebp - 0x271c]
lea eax, [ebp - 0x2704]
push eax
push edx
call fcn.0041b150
jmp 0x42715f
lea edx, [eax + 2]
jmp 0x4274d0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4274d0
sub eax, edx
sar eax, 1
cmp dword [ebp - 0x2708], 2
lea esi, [eax + 1]
jne 0x427530
jmp 0x4274f0
push edi
call fcn.0043e500
push 0xb86
lea esi, [ebx + 1]
lea ecx, [esi + esi]
push str.DevConFunc.cpp
push ecx
call fcn.0043e4e0
mov edi, eax
add esp, 0x10
test edi, edi
je 0x42715f
mov edx, dword [ebp - 0x270c]
push esi
push edi
push edx
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov ebx, eax
cmp ebx, esi
jae 0x4274f0
jmp 0x427561
push 0xb8b
lea eax, [esi + esi]
push str.DevConFunc.cpp
push eax
call fcn.0043e4e0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x42715f
mov ecx, dword [ebp - 0x270c]
push ecx
push esi
push edi
call fcn.0053eeab
add esp, 0xc
push edi
lea ecx, [ebp - 0x2704]
call fcn.00405db0
push edi
call fcn.0043e500
add esp, 4
lea ecx, [ebp - 0x26a8]
mov byte [ebp - 4], 9
call fcn.0043f790
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 5
call fcn.0043f640
jmp 0x4272fc
lea ecx, [ebp - 0x26a8]
call fcn.0043f900
mov byte [ebp - 4], 0xa
cmp esi, 4
je 0x4275be
lea ecx, [ebp - 0x26a8]
mov byte [ebp - 4], 9
call fcn.0043f930
jmp 0x42716e
mov edx, dword [ebp - 0x2654]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x4275e6
push 0
lea ecx, [ebp - 0x2654]
call fcn.004045b0
mov edx, dword [ebp - 0x2654]
push edx
push ebx
lea ecx, [ebp - 0x26a8]
call fcn.0043f030
test eax, eax
je 0x427633
mov edx, dword [ebp - 0x2650]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x42761f
push 0
lea ecx, [ebp - 0x2650]
call fcn.004045b0
mov edx, dword [ebp - 0x2650]
push edx
lea ecx, [ebp - 0x26a8]
call fcn.0043f5a0
mov edx, dword [eax]
mov dword [ebp - 0x2710], edx
lea ecx, [ebp - 0x26a8]
mov byte [ebp - 4], 9
call fcn.0043f930
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 5
call fcn.0043f640
jmp 0x4272fc
cmp eax, 2
jne 0x427a0a
push 0x101
lea eax, [ebp - 0x43c]
push eax
push 0x101
lea ecx, [ebp - 0x640]
push ecx
mov ecx, dword [ebp - 0x2704]
push 0x105
lea edx, [ebp - 0x238]
push edx
push 4
lea eax, [ebp - 0x20]
push eax
push ecx
call fcn.0053e704
mov edx, dword [ebp - 0x2664]
push str.SET_VARSTRING_DRIVE
push edx
call fcn.0053e2bf
add esp, 0x2c
test eax, eax
jne 0x4276be
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x2704]
call fcn.00405db0
jmp 0x427a0a
mov ecx, dword [ebp - 0x2664]
push str.SET_VARSTRING_DIR
push ecx
call fcn.0053e2bf
add esp, 8
test eax, eax
jne 0x4276fc
lea edx, [ebp - 0x20]
push edx
lea ecx, [ebp - 0x2704]
call fcn.00405db0
lea eax, [ebp - 0x238]
push eax
lea ecx, [ebp - 0x2704]
call fcn.004062b0
jmp 0x427a0a
push str.SET_VARSTRING_FILE
lea ecx, [ebp - 0x2664]
call fcn.0040b340
test eax, eax
jne 0x427739
lea ecx, [ebp - 0x640]
push ecx
lea ecx, [ebp - 0x2704]
call fcn.00405db0
lea edx, [ebp - 0x43c]
push edx
lea ecx, [ebp - 0x2704]
call fcn.004062b0
jmp 0x427a0a
push str.SET_VARSTRING_EXT
lea ecx, [ebp - 0x2664]
call fcn.0040b340
test eax, eax
jne 0x427764
lea eax, [ebp - 0x43c]
push eax
lea ecx, [ebp - 0x2704]
call fcn.00405db0
jmp 0x427a0a
push str.SET_VARSTRING_ISU
lea ecx, [ebp - 0x2664]
call fcn.0040b340
test eax, eax
jne 0x427a0a
mov ecx, dword [0x574668]
mov edx, dword [0x57466c]
mov eax, dword [str..isu_]
mov dword [ebp - 0x18], ecx
mov ecx, dword [0x574660]
mov dword [ebp - 0x14], edx
mov edx, dword [0x574664]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2704]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], edx
cmp dword [eax - 0xc], 0
jl 0x427842
lea ecx, [ebp - 0x18]
push ecx
push eax
call fcn.0053ea56
add esp, 8
test eax, eax
je 0x427842
sub eax, dword [ebp - 0x2704]
sar eax, 1
mov esi, eax
test esi, esi
jle 0x427842
lea eax, [ebp - 0x18]
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4277e0
sub eax, edx
sar eax, 1
add esi, eax
push esi
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp - 0x2704]
call fcn.0040b560
test eax, eax
jle 0x427a0a
lea ecx, [ebp - 0x2c]
lea edi, [ecx + 2]
nop
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x427810
sub ecx, edi
sar ecx, 1
lea eax, [eax + ecx - 1]
sub eax, esi
push eax
push esi
lea eax, [ebp - 0x2708]
push eax
lea ecx, [ebp - 0x2704]
call fcn.0040b930
mov byte [ebp - 4], 0xc
jmp 0x4278fc
push 0x574654
lea edx, [ebp - 0x18]
push 4
push edx
call fcn.0053eeab
push str..isu
lea eax, [ebp - 0x2c]
push 6
push eax
call fcn.0053eeab
mov eax, dword [ebp - 0x2704]
add esp, 0x18
cmp dword [eax - 0xc], 0
jl 0x427a0a
lea ecx, [ebp - 0x18]
push ecx
push eax
call fcn.0053ea56
add esp, 8
test eax, eax
je 0x427a0a
sub eax, dword [ebp - 0x2704]
sar eax, 1
mov esi, eax
test esi, esi
jle 0x427a0a
lea eax, [ebp - 0x18]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4278a2
sub eax, edx
sar eax, 1
add esi, eax
push esi
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp - 0x2704]
call fcn.0040b560
test eax, eax
jle 0x427a0a
lea ecx, [ebp - 0x2c]
lea edi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x4278d1
sub ecx, edi
sar ecx, 1
add eax, ecx
sub eax, esi
push eax
push esi
lea eax, [ebp - 0x2708]
push eax
lea ecx, [ebp - 0x2704]
call fcn.0040b930
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x2704]
call fcn.00405460
lea ecx, [ebp - 0x2708]
mov byte [ebp - 4], 5
call fcn.00417700
push 0x101
lea ecx, [ebp - 0x43c]
push ecx
push 0x101
lea edx, [ebp - 0x640]
push edx
mov edx, dword [ebp - 0x2704]
push 0x105
lea eax, [ebp - 0x238]
push eax
push 4
lea ecx, [ebp - 0x20]
push ecx
push edx
call fcn.0053e704
add esp, 0x24
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x2704]
call fcn.00405db0
lea ecx, [ebp - 0x238]
push ecx
lea ecx, [ebp - 0x2704]
call fcn.004062b0
jmp 0x427a0a
mov ecx, dword [ebp - 0x2664]
push str.SET_VARSIGNED_EXIST
push ecx
call fcn.0053e2bf
add esp, 8
test eax, eax
jne 0x42799c
mov edx, dword [ebp - 0x2724]
mov dword [ebp - 0x2710], edx
jmp 0x427a0a
mov ecx, dword [ebp - 0x264c]
lea eax, [ebp - 0x2710]
push eax
push str.0x_x
push ecx
call fcn.0053ef82
add esp, 0xc
test eax, eax
jg 0x427a0a
mov eax, dword [ebp - 0x264c]
push 0xa
lea edx, [ebp - 0x2728]
push edx
push eax
jmp 0x4279fc
mov edx, dword [ebp - 0x264c]
lea ecx, [ebp - 0x2710]
push ecx
push str.0x_x
push edx
call fcn.0053ef82
add esp, 0xc
test eax, eax
jg 0x427a0a
mov ecx, dword [ebp - 0x264c]
push 0xa
lea eax, [ebp - 0x2728]
push eax
push ecx
call fcn.0053f49b
mov dword [ebp - 0x2710], eax
add esp, 0xc
mov ecx, dword [ebp - 0x265c]
mov edx, dword [ecx - 8]
mov eax, 1
sub eax, dword [ecx - 4]
or edx, eax
jge 0x427a32
push 0
lea ecx, [ebp - 0x265c]
call fcn.004045b0
mov ecx, dword [ebp - 0x265c]
mov ebx, 7
xor edx, edx
mov eax, ecx
mov dword [ebp - 0x266c], ebx
mov dword [ebp - 0x2670], 0
mov word [ebp - 0x2680], dx
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x427a55
sub eax, esi
sar eax, 1
push eax
push ecx
lea ecx, [ebp - 0x2680]
call fcn.004021b0
mov edi, dword [ebp - 0x271c]
lea esi, [edi + 0x14]
lea eax, [ebp - 0x2680]
push eax
mov ecx, esi
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x14], esi
call fcn.004186d0
mov dword [ebp - 0x2708], eax
cmp eax, dword [esi + 4]
je 0x427aca
mov ecx, dword [eax + 0x1c]
add eax, 0xc
cmp dword [eax + 0x14], 8
jb 0x427aa8
mov eax, dword [eax]
push ecx
mov ecx, dword [ebp - 0x2670]
push eax
push ecx
push 0
lea ecx, [ebp - 0x2680]
call fcn.00401550
test eax, eax
js 0x427aca
lea eax, [ebp - 0x2708]
jmp 0x427ad3
mov edx, dword [esi + 4]
mov dword [ebp - 0x1c], edx
lea eax, [ebp - 0x1c]
cmp dword [ebp - 0x266c], 8
mov esi, dword [eax]
mov dword [ebp - 0x270c], esi
mov byte [ebp - 4], 5
jb 0x427af7
mov eax, dword [ebp - 0x2680]
push eax
call fcn.00449b7c
add esp, 4
cmp dword [ebp - 0x2714], 0
je 0x427b1d
cmp esi, dword [edi + 0x18]
je 0x427b1d
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x2718]
push str.__s__the_variable_is_already_defined_as_unsigned_variable.
push edx
call fcn.0040ba60
add esp, 0xc
mov ecx, dword [ebp - 0x265c]
mov eax, 1
sub eax, dword [ecx - 4]
or eax, dword [ecx - 8]
jge 0x427b43
push 0
lea ecx, [ebp - 0x265c]
call fcn.004045b0
mov ecx, dword [ebp - 0x265c]
xor eax, eax
mov word [ebp - 0x2680], ax
mov eax, ecx
mov dword [ebp - 0x266c], ebx
mov dword [ebp - 0x2670], 0
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x427b61
sub eax, esi
sar eax, 1
push eax
push ecx
lea ecx, [ebp - 0x2680]
call fcn.004021b0
lea ecx, [ebp - 0x2680]
lea ebx, [edi + 0x24]
push ecx
mov ecx, ebx
mov byte [ebp - 4], 0xf
call fcn.004186d0
mov dword [ebp - 0x2708], eax
cmp eax, dword [ebx + 4]
je 0x427bcd
mov ecx, dword [eax + 0x1c]
add eax, 0xc
cmp dword [eax + 0x14], 8
jb 0x427bab
mov eax, dword [eax]
mov edx, dword [ebp - 0x2670]
push ecx
push eax
push edx
push 0
lea ecx, [ebp - 0x2680]
call fcn.00401550
test eax, eax
js 0x427bcd
lea eax, [ebp - 0x2708]
jmp 0x427bd6
mov eax, dword [ebx + 4]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
cmp dword [ebp - 0x266c], 8
mov esi, dword [eax]
mov dword [ebp - 0x2724], esi
mov byte [ebp - 4], 5
jb 0x427bfa
mov ecx, dword [ebp - 0x2680]
push ecx
call fcn.00449b7c
add esp, 4
cmp dword [ebp - 0x2714], 1
je 0x427c20
cmp esi, dword [edi + 0x28]
je 0x427c20
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x2718]
push str.__s__the_variable_is_already_defined_as_signed_variable.
push eax
call fcn.0040ba60
add esp, 0xc
mov ecx, dword [ebp - 0x265c]
mov eax, 1
sub eax, dword [ecx - 4]
or eax, dword [ecx - 8]
jge 0x427c46
push 0
lea ecx, [ebp - 0x265c]
call fcn.004045b0
mov ecx, dword [ebp - 0x265c]
xor edx, edx
mov eax, ecx
mov dword [ebp - 0x266c], 7
mov dword [ebp - 0x2670], 0
mov word [ebp - 0x2680], dx
lea esi, [eax + 2]
jmp 0x427c70
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x427c70
sub eax, esi
sar eax, 1
push eax
push ecx
lea ecx, [ebp - 0x2680]
call fcn.004021b0
lea eax, [ebp - 0x2680]
lea esi, [edi + 0x34]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x10
call fcn.00418730
mov dword [ebp - 0x2708], eax
cmp eax, dword [esi + 4]
je 0x427cdc
mov ecx, dword [eax + 0x1c]
add eax, 0xc
cmp dword [eax + 0x14], 8
jb 0x427cba
mov eax, dword [eax]
push ecx
mov ecx, dword [ebp - 0x2670]
push eax
push ecx
push 0
lea ecx, [ebp - 0x2680]
call fcn.00401550
test eax, eax
js 0x427cdc
lea eax, [ebp - 0x2708]
jmp 0x427ce5
mov edx, dword [esi + 4]
mov dword [ebp - 0x1c], edx
lea eax, [ebp - 0x1c]
cmp dword [ebp - 0x266c], 8
mov edi, dword [eax]
mov byte [ebp - 4], 5
jb 0x427d03
mov eax, dword [ebp - 0x2680]
push eax
call fcn.00449b7c
add esp, 4
xor ecx, ecx
cmp dword [ebp - 0x2714], 2
mov word [ebp - 0x2680], cx
mov ecx, dword [ebp - 0x271c]
mov dword [ebp - 0x266c], 7
mov dword [ebp - 0x2670], 0
je 0x427d52
cmp edi, dword [ecx + 0x38]
je 0x427d52
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x2718]
push str.__s__the_variable_is_already_defined_as_string_variable.
push eax
call fcn.0040ba60
mov ecx, dword [ebp - 0x271c]
add esp, 0xc
mov eax, dword [ebp - 0x2718]
cmp dword [eax - 0xc], 0
je 0x427d6d
push 0x10
push str.Internal_Error
push eax
push 0
jmp 0x427fe0
mov eax, dword [ebp - 0x2714]
sub eax, 0
je 0x427f0b
dec eax
je 0x427e69
dec eax
jne 0x427f9b
cmp edi, dword [ecx + 0x38]
mov ecx, dword [ebp - 0x2704]
mov eax, 1
je 0x427dcd
sub eax, dword [ecx - 4]
or eax, dword [ecx - 8]
jge 0x427db5
push 0
lea ecx, [ebp - 0x2704]
call fcn.004045b0
mov ecx, dword [ebp - 0x2704]
push ecx
lea ecx, [edi + 0x28]
call fcn.00402490
mov dword [ebp - 0x272c], 1
jmp 0x427fe6
sub eax, dword [ecx - 4]
or eax, dword [ecx - 8]
jge 0x427de8
push 0
lea ecx, [ebp - 0x2704]
call fcn.004045b0
mov ecx, dword [ebp - 0x2704]
mov edx, dword [ebp - 0x265c]
mov eax, 1
sub eax, dword [edx - 4]
mov dword [ebp - 0x2708], ecx
mov ecx, dword [edx - 8]
or ecx, eax
jge 0x427e16
push 0
lea ecx, [ebp - 0x265c]
call fcn.004045b0
mov edx, dword [ebp - 0x265c]
lea ecx, [ebp - 0x2708]
mov dword [ebp - 0x1c], edx
push ecx
lea edx, [ebp - 0x1c]
push edx
lea ecx, [ebp - 0x2700]
call fcn.0042d910
push 0
lea eax, [ebp - 0x2700]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x13
call fcn.004232e0
push eax
lea ecx, [ebp - 0x18]
push ecx
mov ecx, esi
call fcn.00420ef0
lea ecx, [ebp - 0x2700]
call fcn.00418480
mov dword [ebp - 0x272c], 1
jmp 0x427fe6
mov eax, dword [ebp - 0x2724]
cmp eax, dword [ecx + 0x28]
je 0x427e8c
mov edx, dword [ebp - 0x2710]
mov dword [eax + 0x28], edx
mov dword [ebp - 0x272c], 1
jmp 0x427fe6
mov eax, dword [ebp - 0x2710]
mov ecx, dword [ebp - 0x265c]
mov dword [ebp - 0x2708], eax
mov eax, 1
sub eax, dword [ecx - 4]
or eax, dword [ecx - 8]
jge 0x427ebe
push 0
lea ecx, [ebp - 0x265c]
call fcn.004045b0
mov ecx, dword [ebp - 0x265c]
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp - 0x2708]
push ecx
lea edx, [ebp - 0x1c]
push edx
lea ecx, [ebp - 0x26c8]
call fcn.0041c790
push 0
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x12
call fcn.00423220
push eax
lea eax, [ebp - 0x18]
push eax
mov ecx, ebx
call fcn.00420dc0
lea ecx, [ebp - 0x26c8]
call fcn.00418450
mov dword [ebp - 0x272c], 1
jmp 0x427fe6
mov eax, dword [ebp - 0x270c]
cmp eax, dword [ecx + 0x18]
je 0x427f2e
mov ecx, dword [ebp - 0x2710]
mov dword [eax + 0x28], ecx
mov dword [ebp - 0x272c], 1
jmp 0x427fe6
mov ecx, dword [ebp - 0x265c]
mov eax, 1
sub eax, dword [ecx - 4]
or eax, dword [ecx - 8]
jge 0x427f54
push 0
lea ecx, [ebp - 0x265c]
call fcn.004045b0
mov ecx, dword [ebp - 0x265c]
lea edx, [ebp - 0x2710]
push edx
lea eax, [ebp - 0x2708]
mov dword [ebp - 0x2708], ecx
push eax
lea ecx, [ebp - 0x26a0]
call fcn.0041c790
mov esi, dword [ebp - 0x14]
push 0
push eax
mov ecx, esi
mov byte [ebp - 4], 0x11
call fcn.00423220
push eax
lea ecx, [ebp - 0x18]
push ecx
mov ecx, esi
call fcn.00420dc0
lea ecx, [ebp - 0x26a0]
call fcn.00418450
mov dword [ebp - 0x272c], 1
jmp 0x427fe6
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x427fe6
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x2718]
push str.CUninstallActions::SetVariable_invalid_parameters.___s_
push eax
call fcn.0040ba60
mov ecx, dword [ebp - 0x2718]
add esp, 0xc
push 0x10
push str.Internal_Error
push ecx
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [ebp - 0x2718]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42800c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x2704]
add eax, 0xfffffff0
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x428032
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x2720]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x428058
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push fcn.00417700
push 8
push 4
lea ecx, [ebp - 0x2664]
push ecx
mov byte [ebp - 4], 1
call fcn.0053ee28
lea ecx, [ebp - 0x2748]
mov byte [ebp - 4], 0
call fcn.0045913b
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4280a6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x272c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0053e1ad
mov esp, ebp
pop ebp
ret 4