Function at 0x454300
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56762b
mov eax, dword fs:[0]
push eax
sub esp, 0x360
mov eax, dword [0x5d26e8]
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 edi, ecx
mov eax, dword [edi + 0x50]
mov ebx, dword [eax + 0x98]
push 0
lea ecx, [ebp - 0x36c]
mov dword [ebp - 0x278], edi
mov dword [ebp - 0x250], ebx
mov byte [ebp - 0x242], 0
call fcn.0040b770
mov dword [ebp - 4], 0
fld dword [ebx + 0x184]
mov esi, dword [edi + 0x50]
fstp dword [ebp - 0x2f8]
mov eax, dword [ebx + 0x194]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [ebx + 0x198]
mov dword [ebp - 0x2a0], ecx
call fcn.004a10cf
test eax, eax
je 0x4543a1
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
mov dword [ebp - 0x248], eax
jmp 0x4543ab
mov dword [ebp - 0x248], 0
mov ecx, dword [esi + 0x6c]
mov edx, dword [esi + 0x7c]
mov eax, dword [edi + 0x50]
mov dword [ebp - 0x284], ecx
mov ecx, dword [esi + 0x78]
mov dword [ebp - 0x274], ecx
mov ecx, dword [esi + 0x74]
mov dword [ebp - 0x258], edx
mov edx, dword [esi + 0x70]
mov dword [ebp - 0x280], ecx
mov ecx, dword [esi + 0x80]
mov esi, dword [eax + 0x50]
cmp byte [esi + 0x46a], 0
mov dword [ebp - 0x27c], edx
mov dword [ebp - 0x270], ecx
mov byte [esi + 0x449], cl
mov byte [ebp - 0x241], 0
je 0x45491d
push 1
push 0x58a919
mov ecx, esi
call fcn.0042a5b0
push 0x58a919
lea edx, [ebp - 0x294]
push edx
mov ecx, esi
mov byte [esi + 0x454], 1
mov byte [esi + 0x448], 0
call fcn.0042c110
test al, al
je 0x454a7f
mov eax, dword [ebp - 0x28c]
shr eax, 0x10
push 1
and eax, 0x7fff
push 0x58a919
mov ecx, esi
mov dword [esi + 0xc], eax
call fcn.0042ae50
test eax, eax
jne 0x454a7f
mov ecx, dword [esi]
mov edx, dword [ecx + 0x20]
push 1
push esi
call edx
test eax, eax
jne 0x454a7f
movzx eax, byte [esi + 0x449]
push 1
push 1
push eax
mov ecx, esi
call fcn.0042a8d0
cmp byte [esi + 0x450], 0
je 0x4544a6
cmp eax, 4
je 0x45449a
cmp eax, 1
jne 0x4544a6
or byte [esi + 0x448], 0x30
jmp 0x454a7f
lea ecx, [ebp - 0x260]
push ecx
call fcn.00422520
cmp byte [esi + 0x450], 0
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x26c], edx
mov dword [ebp - 0x268], eax
je 0x45453a
push 1
push 0x58a919
mov ecx, esi
call fcn.0042a5b0
test al, al
je 0x45453a
cmp word [esi + 0x12], 0
jne 0x454911
lea ecx, [ebp - 0x24c]
push ecx
push 0x17
lea edi, [esi + 0x14]
push edi
call fcn.00469d00
mov dx, word [ebp - 0x24c]
lea eax, [ebp - 0x24c]
push eax
push 0x18
push edi
mov word [ebp - 0x25a], dx
call fcn.00469d00
mov cx, word [ebp - 0x24c]
mov word [ebp - 0x25c], cx
push 0
mov ecx, esi
call fcn.00428070
mov eax, dword [ebp - 0x25c]
jmp 0x454795
lea edx, [ebp - 0x298]
push edx
lea eax, [ebp - 0x114]
push eax
push 0x104
push str..ini
push str.TasManager
xor edi, edi
push edi
call dword [sym.imp.KERNEL32.dll_SearchPathA]
test eax, eax
je 0x4545b3
lea ecx, [ebp - 0x23c]
push ecx
lea edx, [ebp - 0x114]
push edx
mov dword [ebp - 0x23c], edi
mov dword [ebp - 0x238], edi
mov dword [ebp - 0x234], edi
mov dword [ebp - 0x230], edi
mov dword [ebp - 0x22c], edi
mov dword [ebp - 0x228], edi
call fcn.004a1e94
test eax, eax
je 0x4545b3
mov eax, dword [ebp - 0x238]
mov edi, dword [ebp - 0x23c]
mov dword [ebp - 0x25c], eax
jmp 0x4545c2
mov dword [ebp - 0x25c], 0
mov edi, 0x41b43985
lea ecx, [ebp - 0x254]
push ecx
push 0xf003f
push 0
push str.SoftwareDataEnvDesSolLtdManager
push reloc.WSOCK32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 0x258], 4
test eax, eax
jne 0x4546af
lea edx, [ebp - 0x258]
push edx
mov edx, dword [ebp - 0x254]
lea eax, [ebp - 0x240]
push eax
lea ecx, [ebp - 0x288]
push ecx
push 0
push str.LastEnv
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ebx, eax
mov eax, dword [ebp - 0x240]
rol eax, 0x17
mov dword [ebp - 0x240], eax
mov ecx, eax
mov al, byte [ebp - 0x240]
xor byte [ebp - 0x23f], al
mov dl, byte [ebp - 0x23f]
xor byte [ebp - 0x23e], dl
shr ecx, 0x18
xor cl, al
xor al, dl
mov byte [ebp - 0x240], al
mov byte [ebp - 0x23d], cl
mov ecx, dword [ebp - 0x240]
mov eax, ecx
shr eax, 0x1e
and al, 3
mov edx, ecx
shr edx, 0x18
xor al, dl
mov edx, ecx
shr edx, 0x12
xor al, dl
mov edx, ecx
shr edx, 0xc
xor al, dl
mov edx, ecx
shr edx, 6
xor al, dl
mov edx, ecx
and al, 0x3f
and edx, 0x3f
mov dword [ebp - 0x25c], 0
cmp dl, al
je 0x45469e
mov ecx, 0x7fffffc0
jmp 0x4546a1
and ecx, 0xffffffc0
mov dword [ebp - 0x240], ecx
test ebx, ebx
je 0x45477a
lea eax, [ebp - 0x274]
push eax
lea ecx, [ebp - 0x254]
push ecx
push 0
push 0xf003f
push 0
push str.REG_DWORD
push 0
push str.SoftwareDataEnvDesSolLtdManager
push reloc.WSOCK32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
mov ebx, eax
mov eax, edi
shr eax, 6
xor eax, edi
shr eax, 6
xor eax, edi
shr eax, 6
xor eax, edi
and eax, 0xfc0
mov edx, edi
shr edx, 0x18
xor eax, edx
shr eax, 6
mov ecx, edi
and ecx, 0xffffffc0
or eax, ecx
mov dword [ebp - 0x240], eax
mov cl, byte [ebp - 0x23f]
xor byte [ebp - 0x23e], cl
mov edx, eax
mov al, byte [ebp - 0x240]
shr edx, 8
xor al, dl
xor byte [ebp - 0x23f], al
xor byte [ebp - 0x23d], al
mov byte [ebp - 0x240], al
mov eax, dword [ebp - 0x258]
mov edx, dword [ebp - 0x240]
push eax
lea ecx, [ebp - 0x240]
push ecx
push 4
ror edx, 0x17
push 0
mov dword [ebp - 0x240], edx
mov edx, dword [ebp - 0x254]
push str.LastEnv
push edx
mov dword [ebp - 0x25c], 0
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov dword [ebp - 0x240], edi
mov eax, dword [ebp - 0x254]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x240]
test ebx, ebx
jne 0x454911
cdq
mov dword [ebp - 0x260], eax
movzx eax, byte [esi + 0x449]
mov dword [ebp - 0x25c], edx
cmp eax, 3
ja case.default.0x4547ae
jmp dword [eax*4 + 0x454d78]
mov eax, dword [esi + 0x430]
shl eax, 0x10
cdq
mov ebx, eax
movzx eax, byte [esi + 0x440]
mov edi, edx
cdq
jmp 0x45482d
mov eax, dword [esi + 0x438]
shl eax, 0x10
cdq
mov ebx, eax
movzx eax, byte [esi + 0x442]
mov edi, edx
cdq
jmp 0x45482d
mov eax, dword [esi + 0x434]
shl eax, 0x10
cdq
mov ebx, eax
movzx eax, byte [esi + 0x441]
mov edi, edx
cdq
jmp 0x45482d
mov eax, dword [esi + 0x43c]
shl eax, 0x10
cdq
mov ebx, eax
movzx eax, byte [esi + 0x443]
mov edi, edx
cdq
jmp 0x45482d
mov edi, dword [ebp - 0x25c]
mov ebx, dword [ebp - 0x260]
mov edx, dword [ebp - 0x25c]
mov eax, dword [ebp - 0x260]
push 0
push 0x93a80
push edx
push eax
call fcn.004cf660
add eax, ebx
adc edx, edi
cmp dword [ebp - 0x268], edi
jl 0x454905
mov edi, dword [ebp - 0x26c]
jg 0x45485b
cmp edi, ebx
jb 0x454905
mov ecx, dword [ebp - 0x268]
cmp ecx, edx
jg 0x454905
jl 0x454873
cmp edi, eax
ja 0x454905
mov eax, dword [ebp - 0x260]
add eax, 0xffffeae8
cdq
xor eax, edx
sub eax, edx
cdq
cmp ecx, edx
jl 0x454905
jg 0x45488e
cmp edi, eax
jbe 0x454905
movzx eax, byte [esi + 0x449]
cmp dword [ebp - 0x270], eax
jne 0x4548f9
movzx eax, byte [esi + 0x44b]
movzx edx, byte [esi + 0x44c]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x280]
lea ecx, [edx + ecx*2]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x27c]
lea edx, [eax + edx*2]
cmp edx, ecx
jg 0x4548f9
mov eax, dword [ebp - 0x28c]
shr eax, 0x10
and eax, 0x7fff
cmp eax, dword [esi + 0xc]
jne 0x4548ed
mov ecx, esi
call fcn.0042acd0
cmp byte [esi + 0x44f], al
je 0x454a72
or byte [esi + 0x448], 0x21
jmp 0x454a79
or byte [esi + 0x448], 0x22
jmp 0x454a79
or byte [esi + 0x448], 0x24
jmp 0x454a79
or byte [esi + 0x448], 0x28
jmp 0x454a79
mov ecx, dword [esi + 0x460]
mov edx, dword [ecx]
mov eax, dword [edx + 0x40]
call eax
mov ecx, dword [esi + 0x460]
cmp byte [ecx + 0x128], 0
je 0x454b08
cmp byte [ecx + 0x129], 0
jne 0x454b08
test eax, eax
jne 0x454b08
movzx eax, byte [esi + 0x449]
cmp eax, 3
ja case.default.0x45495e
jmp dword [eax*4 + 0x454d88]
mov eax, 1
jmp 0x454987
mov eax, 2
jmp 0x454987
mov eax, 4
jmp 0x454987
mov eax, 3
jmp 0x454987
mov eax, dword [ebp - 0x288]
push 0
push eax
call fcn.00552af0
test eax, eax
je 0x454a7f
mov ecx, dword [esi + 0x460]
call fcn.0054b840
test eax, eax
je 0x454a7f
mov ecx, dword [esi + 0x460]
push 0x57c8f4
push str.VersionMajor
call fcn.0054b870
push eax
call fcn.004d1a94
mov ecx, dword [esi + 0x460]
add esp, 4
push 0x57c8f4
push str.VersionMinor1
mov edi, eax
call fcn.0054b870
push eax
call fcn.004d1a94
mov ecx, dword [esi + 0x460]
add esp, 4
push 0x57c8f4
push str.VersionMinor2
mov ebx, eax
call fcn.0054b870
push eax
call fcn.004d1a94
mov ecx, dword [esi + 0x460]
add esp, 4
push 0x57c8f4
push str.VersionMinor3
mov dword [ebp - 0x270], eax
call fcn.0054b870
push eax
call fcn.004d1a94
lea ecx, [edi + edi*4]
lea ecx, [ebx + ecx*2]
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp - 0x270]
lea ecx, [ecx + edx*2]
lea edx, [ecx + ecx*4]
lea ecx, [eax + edx*2]
mov eax, dword [ebp - 0x280]
mov edx, dword [ebp - 0x27c]
lea eax, [eax + eax*4]
lea eax, [edx + eax*2]
mov edx, dword [ebp - 0x274]
lea eax, [eax + eax*4]
lea eax, [edx + eax*2]
mov edx, dword [ebp - 0x258]
lea eax, [eax + eax*4]
lea eax, [edx + eax*2]
add esp, 4
cmp ecx, eax
jl 0x454a79
mov dword [esi + 4], 0xffffffff
mov ebx, dword [ebp - 0x250]
mov edi, dword [sym.imp.USER32.dll_PostMessageA]
mov eax, 1
add dword [esi + 4], eax
cmp dword [ebp - 0x284], 0
je 0x454abe
cmp dword [esi + 8], eax
jne 0x454ab5
mov eax, dword [ebp - 0x248]
mov ecx, dword [eax + 0x1c]
push 0
push 0x6e
push 0x111
push ecx
call edi
mov eax, 1
add dword [esi + 8], eax
mov eax, dword [esi + 8]
add dword [esi + 4], eax
mov eax, dword [esi + 4]
cmp eax, 2
jle 0x454b6c
cmp eax, 7
jge 0x454b6c
cdq
mov ecx, 3
idiv ecx
test edx, edx
jne 0x454b6c
mov eax, dword [esi + 0x460]
push edx
cmp byte [eax + 0x128], dl
jne 0x454b3a
mov edx, dword [ebp - 0x248]
mov eax, dword [edx + 0x1c]
push 0x8092
push 0x111
push eax
jmp 0x454b6a
cmp byte [esi + 0x468], 0
jne 0x454b26
test al, 0x10
je 0x454b26
mov byte [esi + 0x468], 1
call fcn.00420b90
jmp 0x454a7f
test al, 0x40
je 0x454a7f
mov byte [ebp - 0x241], 1
jmp 0x454a7f
cmp byte [ebp - 0x241], 0
je 0x454b59
mov ecx, dword [ebp - 0x248]
mov edx, dword [ecx + 0x1c]
push 0x8094
push 0x111
push edx
jmp 0x454b6a
mov eax, dword [ebp - 0x248]
mov ecx, dword [eax + 0x1c]
push 0x66
push 0x111
push ecx
call edi
mov eax, dword [esi + 4]
cmp eax, 7
jle 0x454b95
cmp eax, 0xd
jge 0x454b95
cdq
mov ecx, 3
idiv ecx
test edx, edx
jne 0x454b95
push edx
push edx
mov edx, dword [ebp - 0x248]
mov eax, dword [edx + 0x1c]
push 0x10
push eax
call edi
mov eax, dword [esi + 4]
cmp eax, 0xd
jle 0x454bb5
cmp eax, 0x13
jge 0x454bb5
cdq
mov ecx, 3
idiv ecx
test edx, edx
jne 0x454bb5
push edx
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov eax, dword [esi + 4]
cmp eax, 0x13
jle 0x454bdd
cdq
mov ecx, 3
idiv ecx
test edx, edx
jne 0x454bdd
push edx
mov edx, dword [ebp - 0x248]
mov eax, dword [edx + 0x1c]
push 0x68
push 0x111
push eax
call edi
push 0
mov ecx, esi
mov byte [esi + 0x454], 0
call fcn.00428070
lea ecx, [ebp - 0x36c]
call fcn.0049cdf1
cmp eax, 1
jne 0x454d49
mov ecx, dword [ebp - 0x2fc]
fld dword [ebx + 0x184]
mov edx, dword [ecx]
fstp qword [ebp - 0x26c]
push eax
mov eax, dword [edx + 0x150]
push 0
call eax
fcomp qword [ebp - 0x26c]
fnstsw ax
test ah, 0x44
jp 0x454c6d
mov ecx, dword [ebp - 0x2fc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x150]
push 1
push 0
call eax
fmul qword [0x57d490]
call fcn.004d3050
cmp dword [ebx + 0x5c], eax
jne 0x454c6d
mov ecx, dword [ebx + 0x194]
cmp ecx, dword [ebp - 0x2a4]
jne 0x454c6d
mov edx, dword [ebx + 0x198]
cmp edx, dword [ebp - 0x2a0]
je 0x454c83
mov esi, dword [ebp - 0x278]
mov ecx, esi
mov byte [ebp - 0x242], 1
call fcn.00453ca0
jmp 0x454c89
mov esi, dword [ebp - 0x278]
lea eax, [ebp - 0x260]
push eax
mov ecx, ebx
call fcn.004352b0
mov eax, dword [ebp - 0x260]
test eax, eax
je 0x454cc9
mov ecx, dword [ebp - 0x25c]
test ecx, ecx
je 0x454cc9
cmp dword [ebp - 0x2a4], eax
jge 0x454cba
inc eax
mov dword [ebp - 0x2a4], eax
cmp dword [ebp - 0x2a0], ecx
jge 0x454cc9
inc ecx
mov dword [ebp - 0x2a0], ecx
mov ecx, dword [ebp - 0x2fc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x150]
push 1
push 0
call eax
fstp dword [ebx + 0x184]
mov ecx, dword [ebp - 0x2fc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x150]
push 1
push 0
call eax
fmul qword [0x57d490]
call fcn.004d3050
cmp byte [ebp - 0x242], 0
mov dword [ebx + 0x5c], eax
mov ecx, dword [ebp - 0x2a4]
mov dword [ebx + 0x194], ecx
mov edx, dword [ebp - 0x2a0]
mov dword [ebx + 0x198], edx
je 0x454d49
mov ecx, esi
call fcn.00450300
mov ecx, esi
call fcn.004526e0
mov ecx, esi
call fcn.00452740
mov eax, dword [esi + 0x1c]
push 1
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x36c]
call fcn.0040b6f0
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.004cdc91
mov esp, ebp
pop ebp
ret