Function at 0x414280
Capabilities:
Check os version
Delete registry value
Get number of processors
Query environment variable
Set registry value
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x617219
mov eax, dword fs:[0]
push eax
sub esp, 0x698
mov eax, dword [0x6963f4]
xor eax, esp
mov dword [esp + 0x690], eax
push ebx
push esi
push edi
mov eax, dword [0x6963f4]
xor eax, esp
push eax
lea eax, [esp + 0x6a8]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x14], 0
call dword [sym.imp.user32.dll_GetForegroundWindow]
push str.HprRes6.dll
mov dword [0x6b4050], eax
call dword [sym.imp.kernel32.dll_LoadLibraryA]
mov eax, dword [esi + 0x128]
push 0x639ce8
push eax
call fcn.0059e0af
add esp, 8
test eax, eax
sete al
test al, al
je 0x4145a9
push str.HomePage.url
lea eax, [esi + 0x138]
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.00401be0
mov eax, dword [eax]
add esp, 0xc
push 0x63c6a0
push eax
call fcn.0059f606
mov edi, eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
add esp, 8
mov dword [esp + 0x18], edi
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x414354
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
je 0x41449f
push edi
lea ecx, [esp + 0x2a0]
push 0x400
push ecx
call fcn.0059f856
add esp, 0xc
test eax, eax
je 0x414496
lea ebx, [ebx]
lea eax, [esp + 0x29c]
mov byte [esp + 0x69b], 0
call fcn.004dd8d0
lea edx, [esp + 0x29c]
push str.URL
push edx
call fcn.0059e260
lea ecx, [esp + 0x2a4]
add esp, 8
cmp eax, ecx
jne 0x4143e6
lea eax, [esp + 0x2a0]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4143c0
sub eax, edx
push eax
lea edx, [esp + 0x2a4]
lea edi, [esi + 0x128]
push edx
mov ecx, edi
call fcn.00401480
jmp 0x414468
lea eax, [esp + 0x29c]
push str.Disp
push eax
call fcn.0059e260
lea ecx, [esp + 0x2a4]
add esp, 8
cmp eax, ecx
jne 0x414433
lea eax, [esp + 0x2a1]
lea edi, [esi + 0x12c]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x414416
sub eax, edx
push eax
lea edx, [esp + 0x2a5]
push edx
mov ecx, edi
call fcn.00401480
jmp 0x414468
lea eax, [esp + 0x29c]
push str.Promo
push eax
call fcn.0059e260
lea ecx, [esp + 0x2a4]
add esp, 8
cmp eax, ecx
jne 0x414474
lea edx, [esp + 0x2a2]
lea edi, [esi + 0x134]
push edx
mov ecx, edi
call fcn.00401590
call fcn.0041bb80
mov ebx, edi
call fcn.0041bb00
mov edi, dword [esp + 0x18]
push edi
lea eax, [esp + 0x2a0]
push 0x400
push eax
call fcn.0059f856
add esp, 0xc
test eax, eax
jne 0x414380
push edi
call fcn.0059f7da
add esp, 4
mov eax, dword [esi + 0x128]
lea edi, [esi + 0x128]
push 0x639ce8
push eax
call fcn.0059e0af
add esp, 8
test eax, eax
sete al
test al, al
je 0x4144dd
push 0xe1
call fcn.0056aa5c
test eax, eax
je 0x4144dd
push 0xe1
push eax
mov ecx, edi
call fcn.00404f40
push 5
lea ecx, [esp + 0x14]
push ecx
mov ecx, edi
call fcn.004134d0
mov eax, dword [eax]
push 0x63e6ec
push eax
call fcn.0059e0af
add esp, 8
test eax, eax
mov eax, dword [esp + 0x10]
sete bl
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x414520
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x414579
mov ecx, dword [edi]
mov eax, dword [ecx - 0xc]
add eax, 0xfffffffa
push eax
lea edx, [esp + 0x14]
push edx
mov ecx, edi
call fcn.0040ff90
push eax
mov ecx, edi
mov dword [esp + 0x6b4], 0
call fcn.00407290
mov dword [esp + 0x6b0], 0xffffffff
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4145a9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4145a9
push 0x639ce8
push str.Buy1
push edi
call fcn.0041b850
push 0x63e6fc
push str._Buy1
push edi
call fcn.0041b850
push 0x63e6fc
push 0x63e708
push edi
call fcn.0041b850
mov eax, dword [esi + 0x12c]
lea edi, [esi + 0x12c]
push 0x639ce8
push eax
mov dword [esp + 0x20], edi
call fcn.0059e0af
add esp, 8
test eax, eax
sete al
test al, al
je 0x4145eb
push 0xee
call fcn.0056aa5c
test eax, eax
je 0x4145eb
push 0xee
push eax
mov ecx, edi
call fcn.00404f40
call fcn.0057533b
test eax, eax
jne 0x414605
push 0xffffffffffffffff
push eax
push 0x64
call fcn.0056a6c4
xor eax, eax
jmp 0x415aa4
push 0
call fcn.00575ce6
lea edi, [esi + 0x254]
add esp, 4
mov eax, edi
call fcn.00455ed0
push 4
call fcn.0055dbcb
add esp, 4
test eax, eax
je 0x414631
call fcn.00410820
jmp 0x414633
xor eax, eax
mov ebx, 1
push edi
mov dword [0x6b4048], eax
mov dword [0x6b4144], eax
mov dword [esi + 0x25c], ebx
call fcn.00456150
push str.Hyperionics
mov ecx, esi
call fcn.0057625b
call fcn.005a0cad
add eax, 0x11
mov dword [esp + 0x20], eax
mov eax, dword [0x6a8548]
cmp eax, ebx
jle 0x4148e2
mov dword [esp + 0x10], ebx
jmp 0x414680
mov edx, dword [esp + 0x10]
mov ecx, dword [0x6a854c]
mov ecx, dword [ecx + edx*4]
lea edx, [esp + 0xcc]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x414694
lea eax, [esp + 0xcc]
push eax
call fcn.0059ede8
mov eax, dword [esi + 0x124]
add esp, 4
push eax
lea ecx, [esp + 0xd0]
push ecx
call fcn.0059e260
add esp, 8
test eax, eax
jne 0x4149ac
mov edi, str._quit
lea esi, [esp + 0xcc]
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x414b23
mov edi, str._uninstall
lea esi, [esp + 0xcc]
mov ecx, 0xb
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x414b23
mov ebx, dword [esp + 0x30]
mov edi, str._iconic
lea esi, [esp + 0xcc]
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x414733
cmp dword [ebx + 0x4c], edx
jle 0x414733
mov dword [ebx + 0x4c], 7
jmp 0x4148c7
lea eax, [esp + 0xcc]
push str._readopts
push eax
call fcn.0059e260
lea ecx, [esp + 0xd4]
add esp, 8
cmp eax, ecx
jne 0x414769
mov eax, 1
mov dword [ebx + 0x23c], eax
mov dword [ebx + 0x568], eax
jmp 0x4148c7
lea edx, [esp + 0xcc]
push str._initfrom:
push edx
call fcn.0059e260
lea ecx, [esp + 0xd4]
add esp, 8
cmp eax, ecx
jne 0x414837
lea edx, [esp + 0xd6]
lea esi, [ebx + 0x240]
push edx
mov ecx, esi
call fcn.00401590
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x4148c7
push 0x63e758
mov ecx, esi
call fcn.0041ba50
test eax, eax
jge 0x4147fa
push esi
lea ecx, [ebx + 0x138]
push ecx
lea edx, [esp + 0x24]
push edx
call fcn.00404940
add esp, 0xc
push eax
mov ecx, esi
mov dword [esp + 0x6b4], 5
call fcn.00407270
lea ecx, [esp + 0x1c]
mov dword [esp + 0x6b0], 0xffffffff
call fcn.00401510
mov eax, dword [esi]
push 0x63c6a0
push eax
call fcn.0059f606
add esp, 8
test eax, eax
je 0x414826
push eax
mov dword [ebx + 0x23c], 1
call fcn.0059f7da
add esp, 4
jmp 0x4148c7
push 0x639ce8
mov ecx, esi
call fcn.00401590
jmp 0x4148c7
lea eax, [esp + 0xcc]
push str._nosavedir
push eax
call fcn.0059e260
lea ecx, [esp + 0xd4]
add esp, 8
cmp eax, ecx
jne 0x414863
mov dword [ebx + 0x56c], 1
jmp 0x4148c7
lea edx, [esp + 0xcc]
push str._nosetdir
push edx
call fcn.0059e260
lea ecx, [esp + 0xd4]
add esp, 8
cmp eax, ecx
jne 0x41488f
mov dword [ebx + 0x570], 1
jmp 0x4148c7
mov edi, 0x63e774
lea esi, [esp + 0xcc]
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x4148bd
mov edi, 0x63e778
lea esi, [esp + 0xcc]
mov ecx, 4
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4148c7
mov dword [ebx + 0x578], 1
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x30]
add eax, 1
cmp eax, dword [0x6a8548]
mov dword [esp + 0x10], eax
jl 0x414680
cmp dword [esi + 0x23c], 0
jne 0x414c62
cmp dword [esi + 0x568], 0
jne 0x414c62
mov eax, dword [esi + 0x240]
push 0
push eax
call fcn.005a0abb
add esp, 8
cmp eax, 0xffffffff
jle 0x414c62
cmp dword [0x6a8548], 2
jl 0x414940
mov edx, dword [0x6a854c]
mov esi, dword [edx + 4]
mov edi, str._dumpopts
mov ecx, 0xa
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
mov esi, dword [esp + 0x30]
je 0x414c62
mov eax, dword [esi + 0x240]
lea ecx, [esp + 0x64]
push ecx
push eax
call fcn.005a0da5
add esp, 8
test eax, eax
jne 0x414c62
lea eax, [esi + 0xa4]
xor esi, esi
mov edi, str.IniReadTime
mov ebx, str.Window
call fcn.004d33a0
cdq
cmp edx, dword [esp + 0x88]
jg 0x414c5e
jl 0x414990
cmp eax, dword [esp + 0x84]
jae 0x414c5e
mov eax, dword [esp + 0x30]
mov ecx, 1
mov dword [eax + 0x23c], ecx
mov dword [eax + 0x568], ecx
mov esi, eax
jmp 0x414c62
push 1
lea ecx, [esp + 0xd0]
push ecx
lea edx, [esi + 0xa4]
push edx
call fcn.004d7360
test eax, eax
jne 0x414a6e
lea eax, [esp + 0x18]
push eax
mov edi, 0x698c
call fcn.004dd5f0
add esp, 4
push eax
add esi, 0xc8
lea ecx, [esp + 0x14]
push esi
push ecx
mov dword [esp + 0x6bc], 1
call fcn.00404940
add esp, 0xc
push 0
mov byte [esp + 0x6b4], 2
mov eax, dword [eax]
push 0
push eax
call fcn.0056a67b
mov byte [esp + 0x6b0], 1
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x414a38
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x6b0], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414b17
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x415aa4
lea ecx, [esp + 0x98]
call fcn.00576879
lea edi, [esp + 0x98]
mov dword [esp + 0x6b0], 3
call fcn.004ddf30
test eax, eax
je 0x414b00
call fcn.004ddee0
xor esi, esi
test eax, eax
mov dword [esp + 0x10], eax
jle 0x414b00
mov ebx, dword [sym.imp.user32.dll_SendMessageA]
lea ebx, [ebx]
test esi, esi
jl 0x414b1e
cmp esi, dword [esp + 0xa0]
jge 0x414b1e
mov ecx, dword [esp + 0x9c]
lea edi, [ecx + esi*4]
call sub.kernel32.dll_GetCurrentProcessId
cmp dword [edi], eax
je 0x414af7
cmp esi, dword [esp + 0xa0]
jge 0x414b1e
mov edx, dword [esp + 0x9c]
mov eax, dword [edx + esi*4]
call fcn.004ddff0
push 0
push 0x80cb
push 0x111
push eax
call ebx
add esi, 1
cmp esi, dword [esp + 0x10]
jl 0x414ab0
lea ecx, [esp + 0x98]
mov dword [esp + 0x6b0], 0xffffffff
call fcn.00576890
xor eax, eax
jmp 0x415aa4
jmp fcn.00564f58
call fcn.004ddee0
mov esi, eax
cmp esi, 1
mov dword [esp + 0x10], esi
jle 0x414c1a
lea ecx, [esp + 0x98]
call fcn.00576879
lea edi, [esp + 0x98]
mov dword [esp + 0x6b0], 4
call fcn.004ddf30
test eax, eax
je 0x414c03
xor edi, edi
test esi, esi
jle 0x414c03
mov ebx, dword [sym.imp.user32.dll_PostMessageA]
test edi, edi
jl 0x414b1e
cmp edi, dword [esp + 0xa0]
jge 0x414b1e
mov eax, dword [esp + 0x9c]
lea esi, [eax + edi*4]
call sub.kernel32.dll_GetCurrentProcessId
cmp dword [esi], eax
je 0x414bf6
cmp edi, dword [esp + 0xa0]
jge 0x414b1e
mov ecx, dword [esp + 0x9c]
mov eax, dword [ecx + edi*4]
call fcn.004ddff0
push 0
push 0x3e9
push 0x10
push eax
call ebx
push 0xa
call dword [sym.imp.kernel32.dll_Sleep]
cmp edi, dword [esp + 0xa0]
jge 0x414b1e
mov edx, dword [esp + 0x9c]
mov eax, dword [edx + edi*4]
push eax
push 0
push 1
call dword [sym.imp.kernel32.dll_OpenProcess]
mov esi, eax
test esi, esi
je 0x414bf6
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 + 0x10]
jl 0x414b72
lea ecx, [esp + 0x98]
mov dword [esp + 0x6b0], 0xffffffff
call fcn.00576890
mov edi, str._uninstall
lea esi, [esp + 0xcc]
mov ecx, 0xb
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x414c57
lea eax, [esp + 0x29c]
push eax
call fcn.0040e140
lea ecx, [esp + 0x29c]
push ecx
call fcn.0040e850
lea esi, [esp + 0x29c]
call fcn.0040e390
push 0
call fcn.005a06bf
mov esi, dword [esp + 0x30]
cmp dword [0x6b4498], 0
je 0x414cfb
lea edx, [esp + 0x24]
push edx
call fcn.0059ee4a
lea eax, [esp + 0x28]
add esp, 4
push eax
call fcn.005a0a10
add esp, 4
cmp dword [eax + 0x14], 0x6a
jne 0x414c9c
mov eax, dword [eax + 0x10]
cmp eax, 4
je 0x414cfb
cmp eax, 5
je 0x414cfb
lea ecx, [esp + 0x10]
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 ecx
mov ecx, dword [esp + 0x20]
call fcn.0040eb30
add esp, 8
push 0
mov dword [esp + 0x6b4], 6
mov eax, dword [eax]
push 0
push eax
call fcn.0056a67b
mov dword [esp + 0x6b0], 0xffffffff
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x414cf4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x415aa4
push 0x639ce8
push 0
call sub.ltkrn10n.dll_Ordinal_197
push str.78BY1jl78
push 1
call sub.ltkrn10n.dll_Ordinal_197
push str.oam5302FDio
push 2
call sub.ltkrn10n.dll_Ordinal_197
push 0x639ce8
push 3
call sub.ltkrn10n.dll_Ordinal_197
push 0x639ce8
push 4
call sub.ltkrn10n.dll_Ordinal_197
push str.sgjd0376W
push 5
call sub.ltkrn10n.dll_Ordinal_197
push 0x639ce8
push 6
call sub.ltkrn10n.dll_Ordinal_197
push 0x639ce8
push 7
call sub.ltkrn10n.dll_Ordinal_197
push str.6DFD5C8F_3A33_C1AF_1092_3AEB2329018C
call fcn.005074c7
add esp, 4
push str.E7805899_25E5_7B29_D351_498B5881BC8B
call fcn.005106d0
add esp, 4
push str.F2F5CF5A_0D41_45B5_A666_188F49062F4F
call fcn.00522000
add esp, 4
call dword [sym.imp.comctl32.dll_InitCommonControls]
cmp dword [esi + 0xa8], 0
je 0x414e08
push str.HomePage.url
lea edi, [esi + 0x138]
lea ecx, [esp + 0x20]
push edi
push ecx
call fcn.00401be0
add esp, 0xc
mov ebx, eax
push str.HprRes6
lea edx, [esp + 0x14]
push edi
mov dword [esp + 0x6b8], 7
push edx
mov dword [esp + 0x20], 1
call fcn.00401be0
add esp, 0xc
mov dword [esp + 0x6b0], 8
mov ebx, dword [ebx]
mov eax, dword [eax]
mov edi, dword [esp + 0x20]
push ebx
push eax
push edi
lea ecx, [esi + 0xa4]
mov edx, 0x63e8c4
mov dword [esp + 0x20], 3
call fcn.004d7910
cmp eax, edi
je 0x414e08
mov bl, 1
jmp 0x414e0a
xor bl, bl
mov dword [esp + 0x6b0], 7
test byte [esp + 0x14], 2
je 0x414e41
mov eax, dword [esp + 0x10]
and dword [esp + 0x14], 0xfffffffd
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414e41
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
or edi, 0xffffffff
mov dword [esp + 0x6b0], edi
test byte [esp + 0x14], 1
je 0x414e71
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414e71
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x414fca
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 + 0x18]
push esi
push ecx
call fcn.00401be0
add esp, 0xc
push esi
push eax
lea edx, [esp + 0x44]
push edx
mov dword [esp + 0x6bc], 9
call fcn.00404940
add esp, 0xc
push str._from
push eax
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0x6bc], 0xa
call fcn.00401be0
add esp, 0xc
mov byte [esp + 0x6b0], 0xb
mov ecx, dword [esp + 0x18]
push ecx
push eax
lea edx, [esp + 0x24]
push edx
call fcn.00404940
add esp, 0xc
push 0x63e8d4
push eax
lea eax, [esp + 0x18]
mov bl, 0xc
push eax
mov byte [esp + 0x6bc], bl
call fcn.00401be0
add esp, 0xc
push 0
mov byte [esp + 0x6b4], 0xd
mov eax, dword [eax]
push 0
push eax
call fcn.0056a67b
mov byte [esp + 0x6b0], bl
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414f38
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x6b0], 0xb
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414f5f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x6b0], 0xa
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414f86
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x6b0], 9
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414fad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x6b0], edi
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edi
dec edi
test edi, edi
jmp 0x414ce8
lea eax, [esi + 0xa4]
mov esi, 4
mov edi, str.NumMRU
mov ebx, str.Window
mov dword [esp + 0x10], eax
call fcn.004d33a0
xor esi, esi
cmp eax, 0x14
jle 0x414ff4
lea eax, [esi + 0x14]
jmp 0x414ffa
cmp eax, esi
jge 0x414ffa
xor eax, eax
mov ebx, dword [esp + 0x30]
push eax
mov ecx, ebx
call fcn.00572bde
mov eax, dword [0x6b458c]
cmp eax, 5
ja 0x415029
je 0x415029
mov eax, 0x6a1838
mov dword [eax - 4], esi
mov dword [eax], esi
mov dword [eax + 4], esi
add eax, 0x18
cmp eax, 0x6a1898
jl 0x415017
mov eax, 1
lea edi, [ebx + 0x33c]
mov ecx, 0x84
mov esi, 0x6a1698
rep movsd dword es:[edi], dword [esi]
push 0x90
mov dword [ebx + 0x54c], eax
mov dword [ebx + 0x550], eax
call fcn.0055dbcb
add esp, 4
mov dword [esp + 0xac], eax
test eax, eax
mov dword [esp + 0x6b0], 0xe
je 0x415079
push eax
call fcn.0041beb0
mov esi, eax
jmp 0x41507b
xor esi, esi
push esi
mov ecx, ebx
mov dword [esp + 0x6b4], 0xffffffff
call fcn.005726ab
xor edi, edi
push edi
push esi
lea ecx, [ebx + 0x2e8]
push 0x63e6b8
call fcn.00574666
call fcn.00574e59
call fcn.00564d6e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x4150c1
push 0x80004005
call fcn.004012a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov dword [esp + 0x6b0], 0xf
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.0056aa5c
cmp eax, edi
je 0x415134
push 0x81
push eax
lea ecx, [esp + 0x1c]
call fcn.00404f40
mov ecx, dword [esp + 0x14]
push ecx
call fcn.0059ec15
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.0056aa5c
cmp eax, edi
je 0x415180
push 0x82
push eax
lea ecx, [esp + 0x1c]
call fcn.00404f40
mov eax, dword [esp + 0x14]
mov edi, str.none
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4151a9
push edx
push 0x639ce8
lea ecx, [esp + 0x1c]
call fcn.00401480
mov eax, dword [esp + 0x14]
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 0x4151b3
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 dword [esp + 0x6b0], 0xffffffff
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 0x41524a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x25f8
call fcn.0055dbcb
add esp, 4
mov dword [esp + 0xac], eax
xor esi, esi
cmp eax, esi
mov dword [esp + 0x6b0], 0x10
je 0x415279
push eax
call fcn.00424690
mov edi, eax
jmp 0x41527b
xor edi, edi
push esi
push esi
mov dword [esp + 0x6b8], 0xffffffff
mov edx, dword [edi]
mov eax, dword [edx + 0x138]
push 0xcf8000
push 0x63
mov ecx, edi
call eax
test eax, eax
je 0x4145fe
mov dword [ebx + 0x20], edi
mov ecx, dword [edi + 0xd94]
push ecx
push edi
call fcn.0042d1f0
lea ecx, [esp + 0x40]
call fcn.00573634
lea edx, [esp + 0x40]
push edx
mov ecx, ebx
mov dword [esp + 0x6b4], 0x11
call fcn.00572c64
mov eax, dword [esp + 0x50]
cmp eax, esi
je 0x4152e0
cmp eax, 1
jne 0x4152f7
push esi
push 0x639ce8
lea ecx, [esp + 0x5c]
mov dword [esp + 0x58], 0xffffffff
call fcn.00401480
cmp dword [esp + 0x48], esi
jne 0x415a8b
cmp dword [esp + 0x4c], esi
jne 0x415a8b
lea eax, [esp + 0x1c]
push eax
push str.HprSnap5.Document
push SysReAllocStringLen
mov dword [esp + 0x28], esi
call dword [sym.imp.advapi32.dll_RegCreateKeyA]
cmp eax, esi
jne 0x415381
mov eax, dword [esp + 0x1c]
cmp eax, esi
je 0x415381
push 4
lea ecx, [esp + 0x1c]
push ecx
push 4
push esi
push str.TestTest
push eax
mov dword [esp + 0x30], esi
call dword [sym.imp.advapi32.dll_RegSetValueExA]
cmp eax, esi
jne 0x415376
mov edx, dword [esp + 0x1c]
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.00574803
push 1
call fcn.00574ed9
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
mov eax, ebx
call fcn.00416a90
push ebx
call fcn.00416b10
mov ecx, dword [esp + 0x10]
push ecx
call fcn.004d4190
cmp dword [0x6b40d0], esi
mov dword [ebx + 0x294], 1
je 0x4153b1
mov dword [ebx + 0x4c], 7
mov edx, dword [ebx + 0x64]
lea edi, [ebx + 0x554]
push edx
mov ecx, edi
call fcn.00401590
mov eax, dword [edi]
push 0x5c
push eax
call fcn.005a1267
add esp, 8
cmp eax, esi
jne 0x4153d8
or eax, 0xffffffff
jmp 0x4153da
sub eax, dword [edi]
push eax
lea eax, [esp + 0x1c]
push eax
mov ecx, edi
call fcn.0040ff90
push eax
mov ecx, edi
mov byte [esp + 0x6b4], 0x12
call fcn.00407290
mov byte [esp + 0x6b0], 0x11
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41541f
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.00407100
push ebx
lea ecx, [esp + 0x44]
call fcn.00418f80
test eax, eax
jne 0x41545a
lea ecx, [esp + 0x40]
mov dword [ebx + 0x54c], esi
mov dword [esp + 0x6b0], 0xffffffff
call fcn.00573673
xor eax, eax
jmp 0x415aa4
cmp dword [ebx + 0x560], esi
jne 0x41546e
call fcn.005767d1
mov ecx, ebx
call fcn.0041aa70
cmp dword [ebx + 0x20], esi
je 0x415a8b
push str.RegHS6.hlp
lea esi, [ebx + 0x138]
lea ecx, [esp + 0x1c]
push esi
push ecx
call fcn.00401be0
mov eax, dword [eax]
add esp, 0xc
push 0
push eax
call fcn.005a0abb
add esp, 8
test eax, eax
lea ecx, [esp + 0x18]
sete byte [esp + 0x3b]
call fcn.00401510
cmp byte [esp + 0x3b], 0
je 0x4154f2
push str.RegHS6.hlp
lea edx, [esp + 0x1c]
push esi
push edx
call fcn.00401be0
add esp, 0xc
mov byte [esp + 0x6b0], 0x13
mov eax, dword [eax]
mov edi, dword [esp + 0x10]
push 0x63bdf0
call fcn.00413760
lea ecx, [esp + 0x18]
mov byte [esp + 0x6b0], 0x11
call fcn.00401510
jmp 0x415504
mov edi, dword [edi]
mov eax, edi
mov edi, dword [esp + 0x10]
push str.::_html_licensing.html
call fcn.00413760
push 1
mov ecx, ebx
call fcn.00417040
cmp dword [0x6b40d0], 0
je 0x41552b
cmp dword [0x6b40d4], 0
je 0x41552b
mov ecx, dword [ebx + 0x20]
push 0
call fcn.005652e8
jmp 0x415548
mov eax, dword [ebx + 0x4c]
test eax, eax
jl 0x415548
mov ecx, dword [ebx + 0x20]
push eax
call fcn.005652e8
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 [0x6b40d4], 0
je 0x415577
mov esi, 1
mov ecx, edi
call fcn.0042c200
cmp dword [ebx + 0x1a4], 0
je 0x415589
cmp dword [ebx + 0x194], 0
je 0x415593
push 0x6b4484
call fcn.004d3fe0
mov edi, dword [sym.imp.kernel32.dll_GetEnvironmentVariableA]
xor esi, esi
cmp dword [ebx + 0x1a4], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x3c], esi
je 0x4155b3
cmp dword [ebx + 0x194], esi
je 0x41560e
push 0xf
lea ecx, [esp + 0xb0]
push ecx
push str.CLOCKBACK
mov byte [esp + 0xb8], 0
mov byte [esp + 0xa4], 0
call edi
test eax, eax
jne 0x4155ed
push 0xf
lea edx, [esp + 0x9c]
push edx
push str.CLOCKFORWARD
call edi
test eax, eax
je 0x415623
push 0xffffffffffffffff
push 0
push 0xc6
call fcn.0056a6c4
mov dword [ebx + 0x1a4], 0
mov esi, 1
mov dword [esp + 0x18], esi
cmp dword [ebx + 0x1a4], 0
je 0x415672
mov edi, ebx
call fcn.0041aff0
jmp 0x415a8b
cmp dword [ebx + 0x1a4], 0
jne 0x415617
push 0xf
lea eax, [esp + 0xb0]
push eax
push str.EXPIRED
call edi
mov esi, eax
test esi, esi
mov dword [esp + 0x18], esi
jne 0x415605
push 0xf
lea ecx, [esp + 0xb0]
push ecx
push str.DAYSLEFT
call edi
test eax, eax
je 0x415605
lea edx, [esp + 0xac]
push edx
call fcn.0059ec15
add esp, 4
mov dword [esp + 0x3c], eax
jmp 0x41560e
lea ecx, [esp + 0x1c]
call fcn.00401450
lea ecx, [esp + 0x14]
call fcn.00401450
lea ecx, [esp + 0x20]
call fcn.00401450
lea ecx, [esp + 0x10]
call fcn.00401450
push 0xc0
lea ecx, [esp + 0x20]
mov byte [esp + 0x6b4], 0x17
call fcn.00404f10
push 0xc5
lea ecx, [esp + 0x14]
call fcn.00404f10
test esi, esi
je 0x415741
push 0xc2
lea ecx, [esp + 0x24]
call fcn.00404f10
push 0xc3
lea ecx, [esp + 0x18]
call fcn.00404f10
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.00404940
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
push eax
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x6bc], 0x18
call fcn.00404940
add esp, 0xc
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x6b4], 0x19
call fcn.00410d00
lea ecx, [esp + 0x18]
call fcn.00401510
lea ecx, [esp + 0x24]
mov byte [esp + 0x6b0], 0x17
call fcn.00401510
jmp 0x415933
lea eax, [esp + 0x24]
push eax
mov edi, 0xc1
call fcn.004dd5f0
add esp, 4
mov byte [esp + 0x6b0], 0x1a
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax]
push ecx
push eax
lea edx, [esp + 0x28]
push edx
call fcn.00413730
add esp, 0xc
lea ecx, [esp + 0x24]
mov byte [esp + 0x6b0], 0x17
call fcn.00401510
push str.HprUnInst.log
lea eax, [ebx + 0x138]
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.00401be0
mov eax, dword [eax]
add esp, 0xc
push 0x63c6a0
push eax
call fcn.0059f606
add esp, 8
lea ecx, [esp + 0x24]
mov esi, eax
call fcn.00401510
test esi, esi
je 0x415859
push esi
lea ecx, [esp + 0x2a0]
push 0x400
push ecx
call fcn.0059f856
add esp, 0xc
test eax, eax
je 0x415850
jmp 0x4157e0
lea eax, [esp + 0x29c]
mov byte [esp + 0x69b], 0
call fcn.004dd8d0
lea edx, [esp + 0x29c]
push str.Promo:
push edx
call fcn.0059e260
lea ecx, [esp + 0x2a4]
add esp, 8
cmp eax, ecx
je 0x41582b
push esi
mov edx, ecx
push 0x400
push edx
call fcn.0059f856
add esp, 0xc
test eax, eax
jne 0x4157e0
jmp 0x415850
lea eax, [esp + 0x2a3]
add ebx, 0x134
push eax
mov ecx, ebx
call fcn.00401590
mov edi, ebx
call fcn.0041bb80
call fcn.0041bb00
mov ebx, dword [esp + 0x30]
push esi
call fcn.0059f7da
add esp, 4
lea ecx, [ebx + 0x134]
push ecx
mov ecx, 0x63ea54
call fcn.004011c0
add esp, 4
test al, al
je 0x4158b7
lea edx, [esp + 0x24]
push edx
mov edi, 0xcc
call fcn.004dd5f0
add esp, 4
mov byte [esp + 0x6b0], 0x1b
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax]
lea edx, [ecx - 1]
push edx
push ecx
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00413730
add esp, 0x10
lea ecx, [esp + 0x24]
mov byte [esp + 0x6b0], 0x17
call fcn.00401510
jmp 0x4158c5
push 0xc4
lea ecx, [esp + 0x18]
call fcn.00404f10
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0xb4]
push eax
call fcn.00404940
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
push eax
lea edx, [esp + 0x2c]
push edx
mov byte [esp + 0x6bc], 0x1c
call fcn.00404940
add esp, 0xc
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x6b4], 0x1d
call fcn.00410d00
lea ecx, [esp + 0x24]
call fcn.00401510
lea ecx, [esp + 0xac]
mov byte [esp + 0x6b0], 0x17
call fcn.00401510
mov esi, dword [esp + 0x18]
mov edi, dword [sym.imp.kernel32.dll_GetEnvironmentVariableA]
push 0xf
lea eax, [esp + 0xc0]
push eax
push str.CR30HSDX
call edi
mov edi, eax
neg edi
sbb edi, edi
neg edi
test esi, esi
jne 0x415954
test edi, edi
jne 0x4159d0
mov ecx, dword [ebx + 0x20]
mov ebx, dword [esp + 0x1c]
push ecx
lea edx, [esp + 0xd0]
push edx
call fcn.004dfeb0
mov byte [esp + 0x6b0], 0x1e
mov ebx, dword [esp + 0x30]
lea eax, [ebx + 0x134]
push eax
mov ecx, 0x63ea54
call fcn.004011c0
add esp, 4
test al, al
je 0x4159a7
mov ecx, dword [esp + 0x3c]
mov eax, 0x1d
lea edx, [ecx - 1]
cmp eax, edx
sbb eax, eax
not eax
and eax, ecx
mov dword [ebx + 0x250], eax
lea ecx, [esp + 0xcc]
call fcn.00563e51
lea ecx, [esp + 0xcc]
push ecx
mov byte [esp + 0x6b4], 0x17
call fcn.00415ad0
test esi, esi
jne 0x415a67
cmp dword [ebx + 0x1a4], 0
jne 0x415a67
mov eax, dword [esp + 0x3c]
push 0
cdq
push 0x15180
push edx
push eax
mov dword [ebx + 0x1a4], 1
call fcn.005a2c20
lea esi, [esp + 0x30]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edx
call fcn.0041be90
mov ecx, dword [esp + 0x24]
add ecx, dword [eax]
mov edx, dword [esp + 0x28]
adc edx, dword [eax + 4]
test edi, edi
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], edx
je 0x415a31
mov eax, 0x7f8
jmp 0x415a3d
lea ecx, [esp + 0xac]
call fcn.0041be60
lea ecx, [esp + 0xac]
mov dword [ebx + 0x194], eax
call fcn.0041be30
lea ecx, [esp + 0xac]
mov dword [ebx + 0x198], eax
call fcn.0041bdc0
mov dword [ebx + 0x19c], eax
lea ecx, [esp + 0x10]
call fcn.00401510
lea ecx, [esp + 0x20]
call fcn.00401510
lea ecx, [esp + 0x14]
call fcn.00401510
lea ecx, [esp + 0x1c]
call fcn.00401510
lea ecx, [esp + 0x40]
mov dword [esp + 0x6b0], 0xffffffff
call fcn.00573673
mov eax, 1
mov ecx, dword [esp + 0x6a8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x690]
xor ecx, esp
call fcn.0059e0c2
mov esp, ebp
pop ebp
ret