Function at 0x414a70
Capabilities:
Delete registry value
Query environment variable
Set registry value
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x61f2e4
mov eax, dword fs:[0]
push eax
sub esp, 0x6a8
mov eax, dword [0x69e3d4]
xor eax, esp
mov dword [esp + 0x6a0], eax
push ebx
push esi
push edi
mov eax, dword [0x69e3d4]
xor eax, esp
push eax
lea eax, [esp + 0x6b8]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], 0
call dword [sym.imp.user32.dll_GetForegroundWindow]
push str.HprRes6.dll
mov dword [0x6bc850], eax
call dword [sym.imp.kernel32.dll_LoadLibraryA]
mov eax, dword [edi + 0x128]
lea esi, [edi + 0x128]
push 0x641d28
push eax
call fcn.005a58c6
add esp, 8
test eax, eax
sete al
test al, al
je 0x414da1
push str.HomePage.url
lea eax, [edi + 0x138]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.00401c10
mov eax, dword [eax]
add esp, 0xc
push 0x644710
push eax
call fcn.005a6c42
mov ebx, eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
add esp, 8
mov dword [esp + 0x1c], ebx
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x414b4a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
je 0x414ca1
push ebx
lea ecx, [esp + 0x2b0]
push 0x400
push ecx
call fcn.005a6e92
add esp, 0xc
test eax, eax
je 0x414c98
lea eax, [esp + 0x2ac]
mov byte [esp + 0x6ab], 0
call fcn.004e0cc0
lea edx, [esp + 0x2ac]
push str.URL
push edx
call fcn.005a5af0
lea ecx, [esp + 0x2b4]
add esp, 8
cmp eax, ecx
jne 0x414bd9
lea eax, [esp + 0x2b0]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x414bb0
sub eax, edx
push eax
lea edx, [esp + 0x2b4]
push edx
mov ecx, esi
call fcn.004014d0
mov edi, esi
call fcn.0041c8c0
mov ebx, esi
jmp 0x414c6d
lea eax, [esp + 0x2ac]
push str.Disp
push eax
call fcn.005a5af0
lea ecx, [esp + 0x2b4]
add esp, 8
cmp eax, ecx
jne 0x414c2d
lea eax, [esp + 0x2b1]
add edi, 0x12c
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x414c10
sub eax, edx
push eax
lea edx, [esp + 0x2b5]
push edx
mov ecx, edi
call fcn.004014d0
jmp 0x414c66
lea eax, [esp + 0x2ac]
push str.Promo
push eax
call fcn.005a5af0
lea ecx, [esp + 0x2b4]
add esp, 8
cmp eax, ecx
jne 0x414c76
mov edi, dword [esp + 0x20]
add edi, 0x134
lea edx, [esp + 0x2b2]
push edx
mov ecx, edi
call fcn.004015c0
call fcn.0041c8c0
mov ebx, edi
call fcn.0041c840
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
push ebx
lea eax, [esp + 0x2b0]
push 0x400
push eax
call fcn.005a6e92
add esp, 0xc
test eax, eax
jne 0x414b70
push ebx
call fcn.005a6e16
add esp, 4
mov eax, dword [esi]
push 0x641d28
push eax
call fcn.005a58c6
add esp, 8
test eax, eax
sete al
test al, al
je 0x414cd5
push 0xe1
call fcn.0057245e
test eax, eax
je 0x414cd5
push 0xe1
push eax
mov ecx, esi
call fcn.00404fe0
push 5
lea ecx, [esp + 0x18]
push ecx
mov ecx, esi
call fcn.00413d20
mov eax, dword [eax]
push 0x64678c
push eax
call fcn.005a58c6
add esp, 8
test eax, eax
mov eax, dword [esp + 0x14]
sete bl
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x414d18
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x414d71
mov ecx, dword [esi]
mov eax, dword [ecx - 0xc]
add eax, 0xfffffffa
push eax
lea edx, [esp + 0x18]
push edx
mov ecx, esi
call fcn.004103b0
push eax
mov ecx, esi
mov dword [esp + 0x6c4], 0
call fcn.004074e0
mov dword [esp + 0x6c0], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414da1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x414da1
push 0x641d28
push str.Buy1
push esi
call fcn.0041c5b0
push 0x64679c
push str._Buy1
push esi
call fcn.0041c5b0
push 0x64679c
push 0x6467a8
push esi
call fcn.0041c5b0
mov eax, dword [edi + 0x12c]
lea esi, [edi + 0x12c]
push 0x641d28
push eax
mov dword [esp + 0x24], esi
call fcn.005a58c6
add esp, 8
test eax, eax
sete al
test al, al
je 0x414de3
push 0xee
call fcn.0057245e
test eax, eax
je 0x414de3
push 0xee
push eax
mov ecx, esi
call fcn.00404fe0
call fcn.0057ceaa
test eax, eax
jne 0x414dfd
push 0xffffffffffffffff
push eax
push 0x64
call fcn.005723b2
xor eax, eax
jmp 0x41648e
push 0
call fcn.0057d7cf
lea esi, [edi + 0x254]
add esp, 4
mov eax, esi
call fcn.00458340
push 4
call fcn.005655ab
add esp, 4
test eax, eax
je 0x414e29
call fcn.00410c40
jmp 0x414e2b
xor eax, eax
mov ebx, 1
push esi
mov dword [0x6bc7f8], eax
mov dword [0x6bce0c], eax
mov dword [edi + 0x25c], ebx
call fcn.004585c0
push str.Hyperionics
mov ecx, edi
call fcn.0057dd44
call fcn.0056d592
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x414e6c
push 0x80004005
call fcn.004012f0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
push 0x6978
mov dword [esp + 0x6c4], ebx
call fcn.0057245e
test eax, eax
je 0x414ea0
push 0x6978
push eax
lea ecx, [esp + 0x30]
call fcn.00404fe0
mov ecx, dword [esp + 0x28]
push 0x6467c4
push ecx
call fcn.005a58c6
add esp, 8
test eax, eax
sete al
test al, al
je 0x414edb
push 0x6467c8
lea ecx, [edi + 0xd0]
call fcn.004015c0
push str.HyperSnap_DX_5
lea ecx, [edi + 0xf8]
call fcn.004015c0
call fcn.005a841a
add eax, 0x11
mov dword [esp + 0x2c], eax
mov eax, dword [0x6b08e8]
cmp eax, ebx
jle 0x41529e
mov edx, dword [0x6b08ec]
mov esi, dword [edx + 4]
mov edi, str._regonly
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x415036
push 1
call fcn.0057c875
push str.HprSnap6.tlb
lea eax, [esp + 0x18]
push 0x6bd2f8
push eax
call fcn.00401c10
mov ecx, dword [esp + 0x20]
mov ebx, dword [sym.imp.kernel32.dll_MultiByteToWideChar]
add esp, 0xc
push 0
push 0
push 0xffffffffffffffff
push ecx
push 0
push 0
call ebx
mov esi, eax
cmp esi, 1
je 0x414fd0
lea edx, [esi + esi]
push edx
call fcn.005a854a
add esp, 4
push esi
mov edi, eax
mov eax, dword [esp + 0x18]
push edi
push 0xffffffffffffffff
push eax
push 0
push 0
call ebx
test eax, eax
jne 0x414f84
push eax
push str.Multibytetowide
push str.Error_in_Conversion
push eax
call dword [sym.imp.user32.dll_MessageBoxA]
test edi, edi
je 0x414fd0
lea ecx, [esp + 0x1c]
push ecx
push edi
call dword [sym.imp.oleaut32.dll_LoadTypeLib]
test eax, eax
jne 0x414fd0
mov edx, dword [esp + 0x1c]
push eax
push edi
push edx
call dword [sym.imp.oleaut32.dll_RegisterTypeLib]
test eax, eax
je 0x414fe4
push eax
lea eax, [esp + 0xe0]
push str.Cold_not_register_HprSnap6.tlb__hres___X
push eax
call fcn.005a5a2e
add esp, 0xc
push 0
push str.Error
lea ecx, [esp + 0xe4]
push ecx
jmp 0x414fdc
push 0
push str.Cold_not_load_HprSnap6.tlb
push str.Error
push 0
call dword [sym.imp.user32.dll_MessageBoxA]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x415004
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x6c0], 0xffffffff
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41502f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x41648e
cmp eax, ebx
mov dword [esp + 0x14], ebx
jle 0x41529a
mov edx, dword [0x6b08ec]
mov ecx, dword [esp + 0x14]
mov ecx, dword [edx + ecx*4]
lea edx, [esp + 0xdc]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x415056
lea eax, [esp + 0xdc]
push eax
call fcn.005a6648
mov ebx, dword [esp + 0x24]
mov eax, dword [ebx + 0x124]
add esp, 4
push eax
lea ecx, [esp + 0xe0]
push ecx
call fcn.005a5af0
add esp, 8
test eax, eax
jne 0x4153e1
mov edi, str._quit
lea esi, [esp + 0xdc]
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x41557b
mov edi, str._uninstall
lea esi, [esp + 0xdc]
mov ecx, 0xb
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x41557b
mov edi, str._iconic
lea esi, [esp + 0xdc]
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4150f5
cmp dword [ebx + 0x4c], edx
jle 0x4150f5
mov dword [ebx + 0x4c], 7
jmp 0x415283
lea eax, [esp + 0xdc]
push str._readopts
push eax
call fcn.005a5af0
lea ecx, [esp + 0xe4]
add esp, 8
cmp eax, ecx
jne 0x41512b
mov eax, 1
mov dword [ebx + 0x23c], eax
mov dword [ebx + 0x568], eax
jmp 0x415283
lea edx, [esp + 0xdc]
push str._initfrom:
push edx
call fcn.005a5af0
lea ecx, [esp + 0xe4]
add esp, 8
cmp eax, ecx
jne 0x4151f3
lea edx, [esp + 0xe6]
lea esi, [ebx + 0x240]
push edx
mov ecx, esi
call fcn.004015c0
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x415283
push 0x6468a0
mov ecx, esi
call fcn.0041c7b0
test eax, eax
jge 0x4151b6
push esi
lea ecx, [ebx + 0x138]
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.004049e0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x6c4], 6
call fcn.004074c0
lea ecx, [esp + 0x24]
mov byte [esp + 0x6c0], 1
call fcn.00401280
mov eax, dword [esi]
push 0x644710
push eax
call fcn.005a6c42
add esp, 8
test eax, eax
je 0x4151e2
push eax
mov dword [ebx + 0x23c], 1
call fcn.005a6e16
add esp, 4
jmp 0x415283
push 0x641d28
mov ecx, esi
call fcn.004015c0
jmp 0x415283
lea eax, [esp + 0xdc]
push str._nosavedir
push eax
call fcn.005a5af0
lea ecx, [esp + 0xe4]
add esp, 8
cmp eax, ecx
jne 0x41521f
mov dword [ebx + 0x56c], 1
jmp 0x415283
lea edx, [esp + 0xdc]
push str._nosetdir
push edx
call fcn.005a5af0
lea ecx, [esp + 0xe4]
add esp, 8
cmp eax, ecx
jne 0x41524b
mov dword [ebx + 0x570], 1
jmp 0x415283
mov edi, 0x6468bc
lea esi, [esp + 0xdc]
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x415279
mov edi, 0x6468c0
lea esi, [esp + 0xdc]
mov ecx, 4
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x415283
mov dword [ebx + 0x578], 1
mov eax, dword [esp + 0x14]
add eax, 1
cmp eax, dword [0x6b08e8]
mov dword [esp + 0x14], eax
jl 0x415042
mov edi, dword [esp + 0x20]
cmp dword [edi + 0x23c], 0
jne 0x415354
cmp dword [edi + 0x568], 0
jne 0x415354
mov edi, dword [edi + 0x240]
push 0
push edi
call fcn.005a7ff1
add esp, 8
cmp eax, 0xffffffff
jle 0x415354
cmp dword [0x6b08e8], 2
jl 0x4152f4
mov edx, dword [0x6b08ec]
mov esi, dword [edx + 4]
mov edi, str._dumpopts
mov ecx, 0xa
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x415354
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x240]
lea edx, [esp + 0x74]
push edx
push eax
call fcn.005a80db
add esp, 8
test eax, eax
jne 0x415354
mov eax, dword [esp + 0x20]
add eax, 0xa4
xor esi, esi
mov edi, str.IniReadTime
mov ebx, str.Window
call fcn.004d6600
cdq
cmp edx, dword [esp + 0x98]
jg 0x415354
jl 0x41533f
cmp eax, dword [esp + 0x94]
jae 0x415354
mov eax, dword [esp + 0x20]
mov ecx, 1
mov dword [eax + 0x23c], ecx
mov dword [eax + 0x568], ecx
cmp dword [0x6bd278], 0
je 0x4156b0
lea eax, [esp + 0x3c]
push eax
call fcn.005a671d
lea ecx, [esp + 0x40]
add esp, 4
push ecx
call fcn.005a7f46
add esp, 4
cmp dword [eax + 0x14], 0x6a
jne 0x415396
mov eax, dword [eax + 0x10]
cmp eax, 4
je 0x4156b0
cmp eax, 5
je 0x4156b0
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x14]
push str.This_BETA_TEST_version_of_HyperSnap_6_has_now_expired._nPlease_download_and_install_a_newer_beta_or_a_fully_nreleased_version_from:_n_n_t
push edx
call fcn.0040ef20
add esp, 8
push 0
mov byte [esp + 0x6c4], 7
mov eax, dword [eax]
push 0
push eax
call fcn.00572369
mov byte [esp + 0x6c0], 1
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x414ff8
push 1
lea ecx, [esp + 0xe0]
push ecx
lea edx, [ebx + 0xa4]
push edx
call fcn.004da650
test eax, eax
jne 0x41549b
lea eax, [esp + 0x1c]
push eax
mov edi, 0x698c
call fcn.004e09d0
add esp, 4
push eax
add ebx, 0xc8
lea ecx, [esp + 0x18]
push ebx
push ecx
mov byte [esp + 0x6cc], 2
call fcn.004049e0
add esp, 0xc
push 0
mov byte [esp + 0x6c4], 3
mov eax, dword [eax]
push 0
push eax
call fcn.00572369
mov byte [esp + 0x6c0], 2
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41546a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x6c0], 1
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x415540
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x415540
lea ecx, [esp + 0xa8]
call fcn.0057e362
lea edi, [esp + 0xa8]
mov byte [esp + 0x6c0], 4
call fcn.004e1320
test eax, eax
je 0x41552c
call fcn.004e12d0
xor esi, esi
test eax, eax
mov dword [esp + 0x14], eax
jle 0x41552c
mov ebx, dword [sym.imp.user32.dll_SendMessageA]
test esi, esi
jl 0x415576
cmp esi, dword [esp + 0xb0]
jge 0x415576
mov ecx, dword [esp + 0xac]
lea edi, [ecx + esi*4]
call sub.kernel32.dll_GetCurrentProcessId
cmp dword [edi], eax
je 0x415523
cmp esi, dword [esp + 0xb0]
jge 0x415576
mov edx, dword [esp + 0xac]
mov eax, dword [edx + esi*4]
call fcn.004e13e0
push 0
push 0x80cb
push 0x111
push eax
call ebx
add esi, 1
cmp esi, dword [esp + 0x14]
jl 0x4154d4
lea ecx, [esp + 0xa8]
mov byte [esp + 0x6c0], 1
call fcn.0057e379
mov dword [esp + 0x6c0], 0xffffffff
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41502f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x41648e
jmp fcn.0056c8bd
call fcn.004e12d0
mov esi, eax
cmp esi, 1
mov dword [esp + 0x14], esi
jle 0x41566c
lea ecx, [esp + 0xa8]
call fcn.0057e362
lea edi, [esp + 0xa8]
mov byte [esp + 0x6c0], 5
call fcn.004e1320
test eax, eax
je 0x415658
xor edi, edi
test esi, esi
jle 0x415658
mov ebx, dword [sym.imp.user32.dll_PostMessageA]
test edi, edi
jl 0x415576
cmp edi, dword [esp + 0xb0]
jge 0x415576
mov ecx, dword [esp + 0xac]
lea esi, [ecx + edi*4]
call sub.kernel32.dll_GetCurrentProcessId
cmp dword [esi], eax
je 0x41564b
cmp edi, dword [esp + 0xb0]
jge 0x415576
mov edx, dword [esp + 0xac]
mov eax, dword [edx + edi*4]
call fcn.004e13e0
push 0
push 0x3e9
push 0x10
push eax
call ebx
push 0xa
call dword [sym.imp.kernel32.dll_Sleep]
cmp edi, dword [esp + 0xb0]
jge 0x415576
mov eax, dword [esp + 0xac]
mov ecx, dword [eax + edi*4]
push ecx
push 0
push 1
call dword [sym.imp.kernel32.dll_OpenProcess]
mov esi, eax
test esi, esi
je 0x41564b
push 0
push esi
call dword [sym.imp.kernel32.dll_TerminateProcess]
push esi
call dword [sym.imp.kernel32.dll_CloseHandle]
add edi, 1
cmp edi, dword [esp + 0x14]
jl 0x4155c7
lea ecx, [esp + 0xa8]
mov byte [esp + 0x6c0], 1
call fcn.0057e379
mov edi, str._uninstall
lea esi, [esp + 0xdc]
mov ecx, 0xb
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4156a9
lea eax, [esp + 0x2ac]
push eax
call fcn.0040e530
lea ecx, [esp + 0x2ac]
push ecx
call fcn.0040ec40
lea esi, [esp + 0x2ac]
call fcn.0040e780
push 0
call fcn.005a7bf5
push 0x641d28
push 0
call sub.ltkrn10n.dll_L_UnlockSupport
push str.78BY1jl78
push 1
call sub.ltkrn10n.dll_L_UnlockSupport
push str.oam5302FDio
push 2
call sub.ltkrn10n.dll_L_UnlockSupport
push 0x641d28
push 3
call sub.ltkrn10n.dll_L_UnlockSupport
push 0x641d28
push 4
call sub.ltkrn10n.dll_L_UnlockSupport
push str.sgjd0376W
push 5
call sub.ltkrn10n.dll_L_UnlockSupport
push 0x641d28
push 6
call sub.ltkrn10n.dll_L_UnlockSupport
push 0x641d28
push 7
call sub.ltkrn10n.dll_L_UnlockSupport
push str.6DFD5C8F_3A33_C1AF_1092_3AEB2329018C
call fcn.0050c17d
add esp, 4
push str.E7805899_25E5_7B29_D351_498B5881BC8B
call fcn.005180c0
add esp, 4
push str.F2F5CF5A_0D41_45B5_A666_188F49062F4F
call fcn.005299f0
add esp, 4
call dword [sym.imp.comctl32.dll_InitCommonControls]
mov ebx, dword [esp + 0x20]
cmp dword [ebx + 0xa8], 0
je 0x4157be
push str.HomePage.url
lea esi, [ebx + 0x138]
lea ecx, [esp + 0x28]
push esi
push ecx
call fcn.00401c10
add esp, 0xc
mov edi, eax
push str.HprRes6
lea edx, [esp + 0x18]
push esi
mov byte [esp + 0x6c8], 8
push edx
mov dword [esp + 0x24], 1
call fcn.00401c10
add esp, 0xc
mov dword [esp + 0x6c0], 9
mov edi, dword [edi]
mov eax, dword [eax]
mov esi, dword [esp + 0x2c]
push edi
push eax
push esi
lea ecx, [ebx + 0xa4]
mov edx, str..dll
mov dword [esp + 0x24], 3
call fcn.004dac10
cmp eax, esi
je 0x4157be
mov bl, 1
jmp 0x4157c0
xor bl, bl
mov dword [esp + 0x6c0], 8
test byte [esp + 0x18], 2
je 0x4157f7
mov eax, dword [esp + 0x14]
and dword [esp + 0x18], 0xfffffffd
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4157f7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x6c0], 1
test byte [esp + 0x18], 1
je 0x415829
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x415829
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x41597b
mov esi, dword [esp + 0x20]
push str._program_files_are_damaged__most_probably_by_a_computer_virus_that_infected_your_machine._It_will_no_longer_run__please_clean_your_system_from_viruses__then_download_and_install_a_fresh_copy_of
add esi, 0xc8
lea ecx, [esp + 0x1c]
push esi
push ecx
call fcn.00401c10
add esp, 0xc
push esi
push eax
lea edx, [esp + 0x50]
push edx
mov byte [esp + 0x6cc], 0xa
call fcn.004049e0
add esp, 0xc
push str._from
push eax
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0x6cc], 0xb
call fcn.00401c10
add esp, 0xc
mov byte [esp + 0x6c0], 0xc
mov ecx, dword [esp + 0x1c]
push ecx
push eax
lea edx, [esp + 0x2c]
push edx
call fcn.004049e0
add esp, 0xc
push 0x646a1c
push eax
lea eax, [esp + 0x1c]
mov bl, 0xd
push eax
mov byte [esp + 0x6cc], bl
call fcn.00401c10
add esp, 0xc
push 0
mov byte [esp + 0x6c4], 0xe
mov eax, dword [eax]
push 0
push eax
call fcn.00572369
mov byte [esp + 0x6c0], bl
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4158f2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x6c0], 0xc
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41591a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x6c0], 0xb
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x415942
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x6c0], 0xa
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41596a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x6c0], 1
mov eax, dword [esp + 0x18]
jmp 0x4153cc
mov eax, dword [esp + 0x20]
add eax, 0xa4
mov esi, 4
mov edi, str.NumMRU
mov ebx, str.Window
mov dword [esp + 0x14], eax
call fcn.004d6600
xor esi, esi
cmp eax, 0x14
jle 0x4159a8
lea eax, [esi + 0x14]
jmp 0x4159ae
cmp eax, esi
jge 0x4159ae
xor eax, eax
mov ebx, dword [esp + 0x20]
push eax
mov ecx, ebx
call fcn.0057b233
mov eax, dword [0x6bd36c]
cmp eax, 5
ja 0x4159e2
je 0x4159e2
mov eax, 0x6a9818
jmp 0x4159d0
mov dword [eax - 4], esi
mov dword [eax], esi
mov dword [eax + 4], esi
add eax, 0x18
cmp eax, 0x6a9878
jl 0x4159d0
mov eax, 1
lea edi, [ebx + 0x33c]
mov ecx, 0x84
mov esi, 0x6a9678
rep movsd dword es:[edi], dword [esi]
push 0x90
mov dword [ebx + 0x54c], eax
mov dword [ebx + 0x550], eax
call fcn.005655ab
add esp, 4
mov dword [esp + 0x34], eax
test eax, eax
mov byte [esp + 0x6c0], 0xf
je 0x415a2c
push eax
call fcn.0041cbf0
mov esi, eax
jmp 0x415a2e
xor esi, esi
push esi
mov ecx, ebx
mov byte [esp + 0x6c4], 1
call fcn.0057ad06
xor edi, edi
push edi
push esi
lea ecx, [ebx + 0x2e8]
push 0x646758
call fcn.0057c022
call fcn.0057c7f5
call fcn.0056d592
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x415a71
push 0x80004005
call fcn.004012f0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x6c0], 0x10
push 0x81
mov dword [ebx + 0x29c], 0xfffffff4
mov dword [ebx + 0x2a0], edi
mov dword [ebx + 0x2a4], edi
mov dword [ebx + 0x2a8], edi
mov dword [ebx + 0x2ac], 0x190
mov byte [ebx + 0x2b0], 0
mov byte [ebx + 0x2b1], 0
mov byte [ebx + 0x2b2], 0
call fcn.0057245e
cmp eax, edi
je 0x415ae1
push 0x81
push eax
lea ecx, [esp + 0x20]
call fcn.00404fe0
mov ecx, dword [esp + 0x18]
push ecx
call fcn.005a6475
add esp, 4
push 0x82
mov byte [ebx + 0x2b3], al
mov byte [ebx + 0x2b4], 0
mov byte [ebx + 0x2b5], 0
mov byte [ebx + 0x2b6], 0
mov byte [ebx + 0x2b7], 0
call fcn.0057245e
cmp eax, edi
je 0x415b2d
push 0x82
push eax
lea ecx, [esp + 0x20]
call fcn.00404fe0
mov eax, dword [esp + 0x18]
mov edi, str.none
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x415b56
push edx
push 0x641d28
lea ecx, [esp + 0x20]
call fcn.004014d0
mov eax, dword [esp + 0x18]
mov ecx, ebx
sub ecx, eax
lea edx, [ecx + 0x2b8]
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x415b60
lea eax, [ebx + 0x29c]
push eax
call dword [sym.imp.gdi32.dll_CreateFontIndirectA]
mov edi, dword [sym.imp.gdi32.dll_CreatePen]
push 0
push 2
push 0
mov dword [ebx + 0x298], eax
call edi
mov esi, dword [sym.imp.user32.dll_GetSysColor]
push 0x14
mov dword [ebx + 0x2d8], eax
call esi
push eax
push 2
push 0
call edi
push 0x10
mov dword [ebx + 0x2dc], eax
call esi
push eax
push 2
push 0
call edi
push 0x10
mov dword [ebx + 0x2e0], eax
call esi
push eax
push 4
push 0
call edi
mov dword [ebx + 0x2e4], eax
mov byte [esp + 0x6c0], 1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x415bf4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x26c0
call fcn.005655ab
add esp, 4
mov dword [esp + 0x34], eax
xor esi, esi
cmp eax, esi
mov byte [esp + 0x6c0], 0x11
je 0x415c1d
push eax
call fcn.004258c0
mov edi, eax
jmp 0x415c1f
xor edi, edi
push esi
push esi
mov byte [esp + 0x6c8], 1
mov edx, dword [edi]
mov eax, dword [edx + 0x138]
push 0xcf8000
push 0x63
mov ecx, edi
call eax
test eax, eax
je 0x415004
mov dword [ebx + 0x20], edi
mov ecx, dword [edi + 0xe2c]
push ecx
push edi
call fcn.0042e610
lea ecx, [esp + 0x50]
call fcn.0057bc8f
lea edx, [esp + 0x50]
push edx
mov ecx, ebx
mov byte [esp + 0x6c4], 0x12
call fcn.0057b2b9
mov eax, dword [esp + 0x60]
cmp eax, esi
je 0x415c7e
cmp eax, 1
jne 0x415c95
push esi
push 0x641d28
lea ecx, [esp + 0x6c]
mov dword [esp + 0x68], 0xffffffff
call fcn.004014d0
cmp dword [esp + 0x58], esi
jne 0x41642e
cmp dword [esp + 0x5c], esi
jne 0x41642e
lea eax, [esp + 0x24]
push eax
push str.HprSnap6.Document
push 0x80000000
mov dword [esp + 0x30], esi
call dword [sym.imp.advapi32.dll_RegCreateKeyA]
cmp eax, esi
jne 0x415d1f
mov eax, dword [esp + 0x24]
cmp eax, esi
je 0x415d1f
push 4
lea ecx, [esp + 0x20]
push ecx
push 4
push esi
push str.TestTest
push eax
mov dword [esp + 0x34], esi
call dword [sym.imp.advapi32.dll_RegSetValueExA]
cmp eax, esi
jne 0x415d14
mov edx, dword [esp + 0x24]
push str.TestTest
push edx
call dword [sym.imp.advapi32.dll_RegDeleteValueA]
push 1
push esi
push esi
push 3
lea ecx, [ebx + 0x2e8]
call fcn.0057c1a3
push 1
call fcn.0057c875
mov eax, dword [esp + 0x24]
push eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
mov eax, ebx
call fcn.00417490
push ebx
call fcn.00417510
mov ecx, dword [esp + 0x14]
push ecx
call fcn.004d7400
cmp dword [0x6bcc40], esi
mov dword [ebx + 0x294], 1
je 0x415d4f
mov dword [ebx + 0x4c], 7
mov edx, dword [ebx + 0x64]
lea edi, [ebx + 0x554]
push edx
mov ecx, edi
call fcn.004015c0
mov eax, dword [edi]
push 0x5c
push eax
call fcn.005a879d
add esp, 8
cmp eax, esi
jne 0x415d76
or eax, 0xffffffff
jmp 0x415d78
sub eax, dword [edi]
push eax
lea eax, [esp + 0x20]
push eax
mov ecx, edi
call fcn.004103b0
push eax
mov ecx, edi
mov byte [esp + 0x6c4], 0x13
call fcn.004074e0
mov byte [esp + 0x6c0], 0x12
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x415dbd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.hprsnap6man.chm
mov ecx, edi
call fcn.00407260
push ebx
lea ecx, [esp + 0x54]
call fcn.0041a010
test eax, eax
jne 0x415dfe
lea ecx, [esp + 0x50]
mov dword [ebx + 0x54c], esi
mov byte [esp + 0x6c0], 1
call fcn.0057bcce
lea ecx, [esp + 0x28]
call fcn.00401280
xor eax, eax
jmp 0x41648e
cmp dword [ebx + 0x560], esi
jne 0x415e12
call fcn.0057e2ba
mov ecx, ebx
call fcn.0041b7d0
cmp dword [ebx + 0x20], esi
je 0x416412
push str.RegHS6.hlp
lea esi, [ebx + 0x138]
lea ecx, [esp + 0x20]
push esi
push ecx
call fcn.00401c10
mov eax, dword [eax]
add esp, 0xc
push 0
push eax
call fcn.005a7ff1
add esp, 8
test eax, eax
lea ecx, [esp + 0x1c]
sete byte [esp + 0x33]
call fcn.00401280
cmp byte [esp + 0x33], 0
je 0x415e96
push str.RegHS6.hlp
lea edx, [esp + 0x20]
push esi
push edx
call fcn.00401c10
add esp, 0xc
mov byte [esp + 0x6c0], 0x14
mov eax, dword [eax]
mov edi, dword [esp + 0x14]
push 0x643e60
call fcn.00413fa0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x6c0], 0x12
call fcn.00401280
jmp 0x415ea8
mov edi, dword [edi]
mov eax, edi
mov edi, dword [esp + 0x14]
push str.::_html_licensing.html
call fcn.00413fa0
push 1
mov ecx, ebx
call fcn.00417a40
cmp dword [0x6bcc40], 0
je 0x415ecf
cmp dword [0x6bcc44], 0
je 0x415ecf
mov ecx, dword [ebx + 0x20]
push 0
call fcn.0056cc4d
jmp 0x415eec
mov eax, dword [ebx + 0x4c]
test eax, eax
jl 0x415eec
mov ecx, dword [ebx + 0x20]
push eax
call fcn.0056cc4d
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + 0x20]
push eax
call dword [sym.imp.user32.dll_UpdateWindow]
mov edi, dword [ebx + 0x20]
mov edx, dword [edi + 0x420]
mov eax, dword [edx + 0x13c]
lea ecx, [edi + 0x420]
push 1
push edi
call eax
cmp dword [0x6bcc44], 0
je 0x415f1b
mov esi, 1
mov ecx, edi
call fcn.0042d570
cmp dword [ebx + 0x1a4], 0
je 0x415f2d
cmp dword [ebx + 0x194], 0
je 0x415f37
push 0x6bd264
call fcn.004d7250
mov edi, dword [sym.imp.kernel32.dll_GetEnvironmentVariableA]
xor esi, esi
cmp dword [ebx + 0x1a4], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x48], esi
je 0x415f57
cmp dword [ebx + 0x194], esi
je 0x415fb2
push 0xf
lea ecx, [esp + 0xc0]
push ecx
push str.CLOCKBACK
mov byte [esp + 0xc8], 0
mov byte [esp + 0xd8], 0
call edi
test eax, eax
jne 0x415f91
push 0xf
lea edx, [esp + 0xd0]
push edx
push str.CLOCKFORWARD
call edi
test eax, eax
je 0x415fc7
push 0xffffffffffffffff
push 0
push 0xc6
call fcn.005723b2
mov dword [ebx + 0x1a4], 0
mov esi, 1
mov dword [esp + 0x1c], esi
cmp dword [ebx + 0x1a4], 0
je 0x416016
mov edi, ebx
call fcn.0041bd50
jmp 0x416412
cmp dword [ebx + 0x1a4], 0
jne 0x415fbb
push 0xf
lea eax, [esp + 0xc0]
push eax
push str.EXPIRED
call edi
mov esi, eax
test esi, esi
mov dword [esp + 0x1c], esi
jne 0x415fa9
push 0xf
lea ecx, [esp + 0xc0]
push ecx
push str.DAYSLEFT
call edi
test eax, eax
je 0x415fa9
lea edx, [esp + 0xbc]
push edx
call fcn.005a6475
add esp, 4
mov dword [esp + 0x48], eax
jmp 0x415fb2
lea ecx, [esp + 0x24]
call fcn.004014a0
lea ecx, [esp + 0x18]
call fcn.004014a0
lea ecx, [esp + 0x2c]
call fcn.004014a0
lea ecx, [esp + 0x14]
call fcn.004014a0
push 0xc0
lea ecx, [esp + 0x28]
mov byte [esp + 0x6c4], 0x18
call fcn.00404fb0
push 0xc5
lea ecx, [esp + 0x18]
call fcn.00404fb0
test esi, esi
je 0x4160e1
push 0xc2
lea ecx, [esp + 0x30]
call fcn.00404fb0
push 0xc3
lea ecx, [esp + 0x1c]
call fcn.00404fb0
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x44]
push edx
call fcn.004049e0
add esp, 0xc
lea ecx, [esp + 0x14]
push ecx
push eax
lea edx, [esp + 0x24]
push edx
mov byte [esp + 0x6cc], 0x19
call fcn.004049e0
add esp, 0xc
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x6c4], 0x1a
call fcn.00411120
lea ecx, [esp + 0x1c]
call fcn.00401280
lea ecx, [esp + 0x3c]
mov byte [esp + 0x6c0], 0x18
call fcn.00401280
jmp 0x4162cd
lea eax, [esp + 0x3c]
push eax
mov edi, 0xc1
call fcn.004e09d0
add esp, 4
mov byte [esp + 0x6c0], 0x1b
mov ecx, dword [esp + 0x48]
mov eax, dword [eax]
push ecx
push eax
lea edx, [esp + 0x34]
push edx
call fcn.00413f70
add esp, 0xc
lea ecx, [esp + 0x3c]
mov byte [esp + 0x6c0], 0x18
call fcn.00401280
push str.HprUnInst.log
lea eax, [ebx + 0x138]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.00401c10
mov eax, dword [eax]
add esp, 0xc
push 0x644710
push eax
call fcn.005a6c42
add esp, 8
lea ecx, [esp + 0x34]
mov esi, eax
call fcn.00401280
test esi, esi
je 0x4161f9
push esi
lea ecx, [esp + 0x2b0]
push 0x400
push ecx
call fcn.005a6e92
add esp, 0xc
test eax, eax
je 0x4161f0
jmp 0x416180
lea eax, [esp + 0x2ac]
mov byte [esp + 0x6ab], 0
call fcn.004e0cc0
lea edx, [esp + 0x2ac]
push str.Promo:
push edx
call fcn.005a5af0
lea ecx, [esp + 0x2b4]
add esp, 8
cmp eax, ecx
je 0x4161cb
push esi
mov edx, ecx
push 0x400
push edx
call fcn.005a6e92
add esp, 0xc
test eax, eax
jne 0x416180
jmp 0x4161f0
lea eax, [esp + 0x2b3]
add ebx, 0x134
push eax
mov ecx, ebx
call fcn.004015c0
mov edi, ebx
call fcn.0041c8c0
call fcn.0041c840
mov ebx, dword [esp + 0x20]
push esi
call fcn.005a6e16
add esp, 4
lea ecx, [ebx + 0x134]
push ecx
mov ecx, 0x646b9c
call fcn.004011f0
add esp, 4
test al, al
je 0x416257
lea edx, [esp + 0x34]
push edx
mov edi, 0xcc
call fcn.004e09d0
add esp, 4
mov byte [esp + 0x6c0], 0x1c
mov ecx, dword [esp + 0x48]
mov eax, dword [eax]
lea edx, [ecx - 1]
push edx
push ecx
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00413f70
add esp, 0x10
lea ecx, [esp + 0x34]
mov byte [esp + 0x6c0], 0x18
call fcn.00401280
jmp 0x416265
push 0xc4
lea ecx, [esp + 0x1c]
call fcn.00404fb0
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x44]
push eax
call fcn.004049e0
add esp, 0xc
lea ecx, [esp + 0x14]
push ecx
push eax
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0x6cc], 0x1d
call fcn.004049e0
add esp, 0xc
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x6c4], 0x1e
call fcn.00411120
lea ecx, [esp + 0x34]
call fcn.00401280
lea ecx, [esp + 0x3c]
mov byte [esp + 0x6c0], 0x18
call fcn.00401280
mov edi, dword [sym.imp.kernel32.dll_GetEnvironmentVariableA]
mov esi, dword [esp + 0x1c]
push 0xf
lea eax, [esp + 0xac]
push eax
push str.CR30HSDX
call edi
mov edi, eax
neg edi
sbb edi, edi
neg edi
test esi, esi
jmp 0x41636a
cmp dword [ebx + 0x1a4], 0
jne 0x4163ee
mov eax, dword [esp + 0x48]
push 0
cdq
push 0x15180
push edx
push eax
mov dword [ebx + 0x1a4], 1
call fcn.005aa4b0
lea esi, [esp + 0x48]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
call fcn.0041cbd0
mov ecx, dword [esp + 0x3c]
add ecx, dword [eax]
mov edx, dword [esp + 0x40]
adc edx, dword [eax + 4]
test edi, edi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], edx
je 0x4163c1
mov eax, 0x7f8
jmp 0x4163ca
lea ecx, [esp + 0x34]
call fcn.0041cba0
lea ecx, [esp + 0x34]
mov dword [ebx + 0x194], eax
call fcn.0041cb70
lea ecx, [esp + 0x34]
mov dword [ebx + 0x198], eax
call fcn.0041cb00
mov dword [ebx + 0x19c], eax
lea ecx, [esp + 0x14]
call fcn.00401280
lea ecx, [esp + 0x2c]
call fcn.00401280
lea ecx, [esp + 0x18]
call fcn.00401280
lea ecx, [esp + 0x24]
call fcn.00401280
lea ecx, [esp + 0x50]
mov byte [esp + 0x6c0], 1
call fcn.0057bcce
lea ecx, [esp + 0x28]
call fcn.00401280
jmp 0x416489
mov dword [ebx + 0x560], 1
mov edx, dword [edi + 0x1758]
and edx, 0xfff0
or edx, 1
lea ecx, [esp + 0x50]
mov dword [edi + 0x1758], edx
mov byte [esp + 0x6c0], 1
call fcn.0057bcce
mov dword [esp + 0x6c0], 0xffffffff
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416489
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x6b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x6a0]
xor ecx, esp
call fcn.005a58d9
mov esp, ebp
pop ebp
ret