Function at 0x4095e0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45a788
mov eax, dword fs:[0]
push eax
sub esp, 0x6a4
mov eax, dword [0x46db30]
xor eax, ebp
mov dword [ebp - 0x18], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x638], ecx
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x3cc]
push ecx
lea edx, [ebp - 0x294]
push edx
call fcn.0042e140
add esp, 0xc
lea eax, [ebp - 0x3cc]
push eax
call fcn.0042ed10
add esp, 4
cmp eax, 0x40
jne 0x409719
lea ecx, [ebp - 0x57c]
push ecx
lea edx, [ebp - 0x3cc]
push edx
call fcn.0042de00
add esp, 8
call fcn.0040c6f0
mov dword [ebp - 0x538], eax
lea eax, [ebp - 0x57c]
mov dword [ebp - 0x580], eax
cmp dword [ebp - 0x580], 0
jne 0x409687
mov dword [ebp - 0x63c], 0
jmp 0x4096fb
mov ecx, dword [ebp - 0x580]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
mov dword [ebp - 0x530], eax
cmp dword [ebp - 0x530], 0x3fffffff
jle 0x4096b5
mov dword [ebp - 0x640], 0
jmp 0x4096ef
mov eax, dword [ebp - 0x530]
shl eax, 1
call fcn.00446b30
mov dword [ebp - 0x644], esp
mov edx, dword [ebp - 0x538]
push edx
mov eax, dword [ebp - 0x530]
push eax
mov ecx, dword [ebp - 0x580]
push ecx
mov edx, dword [ebp - 0x644]
push edx
call fcn.0040bc30
mov dword [ebp - 0x640], eax
mov eax, dword [ebp - 0x640]
mov dword [ebp - 0x63c], eax
mov ecx, dword [ebp - 0x63c]
push ecx
push 0x41
mov edx, dword [ebp - 0x638]
add edx, 0x1c0
push edx
call fcn.0042ed50
add esp, 0xc
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0x294]
push ecx
call fcn.0042d3e0
add esp, 8
lea edx, [ebp - 0x4cc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0042e8e0
add esp, 8
mov dword [ebp - 0x2b4], 1
mov dword [ebp - 0x584], 0
jmp 0x409767
mov ecx, dword [ebp - 0x584]
add ecx, 1
mov dword [ebp - 0x584], ecx
cmp dword [ebp - 0x584], 0xc
jge 0x40979e
mov edx, dword [ebp - 0x584]
movzx eax, byte [ebp + edx - 0x81]
mov ecx, dword [ebp - 0x584]
movzx edx, word [ebp + ecx*2 - 0x4cc]
cmp eax, edx
je 0x40979c
mov dword [ebp - 0x2b4], 0
jmp 0x40979e
jmp 0x409758
cmp dword [ebp - 0x2b4], 0
jne 0x4098c9
mov dword [ebp - 0x648], 0x461ad4
lea eax, [ebp - 0x4cc]
mov dword [ebp - 0x64c], eax
mov ecx, dword [ebp - 0x64c]
mov dword [ebp - 0x650], ecx
mov edx, dword [ebp - 0x648]
mov ax, word [edx]
mov word [ebp - 0x652], ax
mov ecx, dword [ebp - 0x64c]
mov dx, word [ebp - 0x652]
mov word [ecx], dx
mov eax, dword [ebp - 0x648]
add eax, 2
mov dword [ebp - 0x648], eax
mov ecx, dword [ebp - 0x64c]
add ecx, 2
mov dword [ebp - 0x64c], ecx
cmp word [ebp - 0x652], 0
jne 0x4097cd
mov dword [ebp - 0x658], 0x461ad8
lea edx, [ebp - 0x294]
mov dword [ebp - 0x65c], edx
mov eax, dword [ebp - 0x65c]
mov dword [ebp - 0x660], eax
mov ecx, dword [ebp - 0x658]
mov dx, word [ecx]
mov word [ebp - 0x662], dx
mov eax, dword [ebp - 0x65c]
mov cx, word [ebp - 0x662]
mov word [eax], cx
mov edx, dword [ebp - 0x658]
add edx, 2
mov dword [ebp - 0x658], edx
mov eax, dword [ebp - 0x65c]
add eax, 2
mov dword [ebp - 0x65c], eax
cmp word [ebp - 0x662], 0
jne 0x409837
xor ecx, ecx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], ecx
push 0x10
push 0x461adc
push str.Invalid_Playback_Password1_
mov ecx, dword [ebp - 0x638]
add ecx, 4
call fcn.0040bc80
xor eax, eax
jmp 0x40a166
call fcn.0040c6f0
mov dword [ebp - 0x2b8], eax
mov edx, dword [ebp - 0x8d]
mov dword [ebp - 0x52c], edx
mov eax, dword [ebp - 0x89]
mov dword [ebp - 0x528], eax
mov ecx, dword [ebp - 0x85]
mov dword [ebp - 0x524], ecx
mov byte [ebp - 0x520], 0
lea edx, [ebp - 0x52c]
mov dword [ebp - 0x4d0], edx
cmp dword [ebp - 0x4d0], 0
jne 0x409920
mov dword [ebp - 0x668], 0
jmp 0x409988
mov eax, dword [ebp - 0x4d0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0x3fffffff
jle 0x409948
mov dword [ebp - 0x66c], 0
jmp 0x40997c
mov eax, dword [ebp - 0x10]
shl eax, 1
call fcn.00446b30
mov dword [ebp - 0x670], esp
mov ecx, dword [ebp - 0x2b8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x4d0]
push eax
mov ecx, dword [ebp - 0x670]
push ecx
call fcn.0040bc30
mov dword [ebp - 0x66c], eax
mov edx, dword [ebp - 0x66c]
mov dword [ebp - 0x668], edx
mov eax, dword [ebp - 0x668]
mov dword [ebp - 0x674], eax
lea ecx, [ebp - 0x2b0]
mov dword [ebp - 0x678], ecx
mov edx, dword [ebp - 0x678]
mov dword [ebp - 0x67c], edx
mov eax, dword [ebp - 0x674]
mov cx, word [eax]
mov word [ebp - 0x67e], cx
mov edx, dword [ebp - 0x678]
mov ax, word [ebp - 0x67e]
mov word [edx], ax
mov ecx, dword [ebp - 0x674]
add ecx, 2
mov dword [ebp - 0x674], ecx
mov edx, dword [ebp - 0x678]
add edx, 2
mov dword [ebp - 0x678], edx
cmp word [ebp - 0x67e], 0
jne 0x4099ac
lea ecx, [ebp - 0x74]
call fcn.0042bd40
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x74]
call fcn.0042f180
push 0x18
lea eax, [ebp - 0x2b0]
push eax
lea ecx, [ebp - 0x74]
call fcn.004301b0
lea ecx, [ebp - 0x2cc]
push ecx
lea ecx, [ebp - 0x74]
call fcn.004302c0
mov dx, word [0x461b20]
mov word [ebp - 0x51c], dx
push 0x40
push 0
lea eax, [ebp - 0x51a]
push eax
call fcn.00443fb0
add esp, 0xc
mov dword [ebp - 0x588], 0
jmp 0x409a67
mov ecx, dword [ebp - 0x588]
add ecx, 1
mov dword [ebp - 0x588], ecx
cmp dword [ebp - 0x588], 0x10
jge 0x409b46
mov edx, dword [ebp - 0x588]
movzx eax, byte [ebp + edx - 0x2cc]
push eax
push str._02x
push 6
lea ecx, [ebp - 0x594]
push ecx
call fcn.0042ef10
add esp, 0x10
lea edx, [ebp - 0x594]
mov dword [ebp - 0x684], edx
mov eax, dword [ebp - 0x684]
mov dword [ebp - 0x688], eax
mov ecx, dword [ebp - 0x684]
mov dx, word [ecx]
mov word [ebp - 0x68a], dx
add dword [ebp - 0x684], 2
cmp word [ebp - 0x68a], 0
jne 0x409ab1
mov eax, dword [ebp - 0x684]
sub eax, dword [ebp - 0x688]
mov ecx, dword [ebp - 0x688]
mov dword [ebp - 0x690], ecx
mov dword [ebp - 0x694], eax
lea edx, [ebp - 0x51c]
add edx, 0xfffffffe
mov dword [ebp - 0x698], edx
mov eax, dword [ebp - 0x698]
mov cx, word [eax + 2]
mov word [ebp - 0x69a], cx
add dword [ebp - 0x698], 2
cmp word [ebp - 0x69a], 0
jne 0x409aff
mov edi, dword [ebp - 0x698]
mov esi, dword [ebp - 0x690]
mov edx, dword [ebp - 0x694]
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x409a58
mov dword [ebp - 0x598], 0
jmp 0x409b61
mov eax, dword [ebp - 0x598]
add eax, 1
mov dword [ebp - 0x598], eax
cmp dword [ebp - 0x598], 0x20
jge 0x409c34
mov ecx, dword [ebp - 0x598]
movzx edx, word [ebp + ecx*2 - 0x51c]
mov eax, dword [ebp - 0x598]
mov ecx, dword [ebp - 0x638]
movzx eax, word [ecx + eax*2 + 0x74]
cmp edx, eax
je 0x409c2f
xor ecx, ecx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], ecx
xor edx, edx
mov dword [ebp - 0x2cc], edx
mov dword [ebp - 0x2c8], edx
mov dword [ebp - 0x2c4], edx
mov dword [ebp - 0x2c0], edx
mov dword [ebp - 0x2bc], edx
push 0x42
push 0
lea eax, [ebp - 0x51c]
push eax
call fcn.00443fb0
add esp, 0xc
push 0x10
push 0x461b30
push str.Invalid_Playback_Password2_
mov ecx, dword [ebp - 0x638]
add ecx, 4
call fcn.0040bc80
mov dword [ebp - 0x5fc], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x74]
call fcn.004011a0
mov eax, dword [ebp - 0x5fc]
jmp 0x40a166
jmp 0x409b52
push str.avcelop12087b69t
lea ecx, [ebp - 0x2b0]
push ecx
call fcn.0042dd60
add esp, 8
movzx edx, byte [ebp - 0x94]
cmp edx, 0x74
jne 0x409db9
mov dword [ebp - 0x5a0], 4
mov dword [ebp - 0x5ac], 0
lea eax, [ebp - 0x5a0]
push eax
lea ecx, [ebp - 0x5ac]
push ecx
lea edx, [ebp - 0x59c]
push edx
push 0x18
lea eax, [ebp - 0x294]
push eax
push 0x461b80
push SysReAllocStringLen
call fcn.0042e6c0
add esp, 0x1c
test eax, eax
je 0x409caa
mov dword [ebp - 0x5ac], 0
mov ecx, dword [ebp - 0x5ac]
add ecx, 1
mov dword [ebp - 0x5ac], ecx
mov edx, dword [ebp - 0x93]
mov dword [ebp - 0x5a4], edx
mov eax, dword [ebp - 0x5a4]
cmp eax, dword [ebp - 0x5ac]
jae 0x409d11
push 0x10
push 0x461b74
push 0x461bd0
mov ecx, dword [ebp - 0x638]
add ecx, 4
call fcn.0040bc80
mov dword [ebp - 0x600], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x74]
call fcn.004011a0
mov eax, dword [ebp - 0x600]
jmp 0x40a166
lea ecx, [ebp - 0x5a8]
push ecx
push 0x2001f
push 0
push 0x461c10
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x409d4a
lea edx, [ebp - 0x5a8]
push edx
push 0x461c60
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
push 4
lea eax, [ebp - 0x5ac]
push eax
push 4
push 0
lea ecx, [ebp - 0x294]
push ecx
mov edx, dword [ebp - 0x5a8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [ebp - 0x5a8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x5a4]
sub ecx, dword [ebp - 0x5ac]
push ecx
push str.___Remaining_number_of_playback:__d_
push 0xc0
mov edx, dword [ebp - 0x638]
add edx, 0xfc
push edx
call fcn.0042ef10
add esp, 0x10
mov eax, dword [ebp - 0x638]
mov dword [eax + 0x1bc], 0
jmp 0x40a147
movzx ecx, byte [ebp - 0x94]
cmp ecx, 0x64
jne 0x40a0eb
mov dword [ebp - 0x5c8], 0
mov dword [ebp - 0x5f4], 0
mov dword [ebp - 0x5f0], 0
mov dx, word [ebp - 0x93]
mov word [ebp - 0x5c8], dx
mov al, byte [ebp - 0x91]
mov byte [ebp - 0x5f4], al
mov cl, byte [ebp - 0x90]
mov byte [ebp - 0x5f0], cl
push 0
push 0
push 0
mov edx, dword [ebp - 0x5f0]
push edx
mov eax, dword [ebp - 0x5f4]
push eax
mov ecx, dword [ebp - 0x5c8]
push ecx
lea ecx, [ebp - 0x5e0]
call fcn.00407aa0
push 0
push 1
push 0
push 0
lea ecx, [ebp - 0x5ec]
call fcn.00407900
lea edx, [ebp - 0x5d4]
push edx
call fcn.00407a20
mov dword [ebp - 0x5f8], 8
lea eax, [ebp - 0x5f8]
push eax
lea ecx, [ebp - 0x5b4]
push ecx
lea edx, [ebp - 0x5c4]
push edx
push 8
lea eax, [ebp - 0x294]
push eax
push 0x461d00
push SysReAllocStringLen
call fcn.0042e6c0
add esp, 0x1c
test eax, eax
je 0x409e9c
fld qword [ebp - 0x5d4]
fstp qword [ebp - 0x5b4]
sub esp, 8
fld qword [ebp - 0x5b4]
fstp qword [esp]
lea ecx, [ebp - 0x5c0]
call fcn.00407a40
lea ecx, [ebp - 0x5ec]
push ecx
lea edx, [ebp - 0x5e0]
push edx
lea eax, [ebp - 0x60c]
push eax
lea ecx, [ebp - 0x5d4]
call fcn.00407bf0
mov ecx, eax
call fcn.00407930
movzx ecx, al
test ecx, ecx
je 0x409f56
lea edx, [ebp - 0x5c0]
push edx
lea ecx, [ebp - 0x5e0]
call fcn.00407b70
movzx eax, al
test eax, eax
je 0x409f13
lea ecx, [ebp - 0x5d4]
push ecx
lea edx, [ebp - 0x294]
push edx
mov ecx, dword [ebp - 0x638]
call fcn.0040a190
push 0x10
push 0x461d58
push 0x461d64
mov ecx, dword [ebp - 0x638]
add ecx, 4
call fcn.0040bc80
mov dword [ebp - 0x610], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x74]
call fcn.004011a0
mov eax, dword [ebp - 0x610]
jmp 0x40a166
lea eax, [ebp - 0x5ec]
push eax
lea ecx, [ebp - 0x5d4]
push ecx
lea edx, [ebp - 0x61c]
push edx
lea ecx, [ebp - 0x5c0]
call fcn.00407bf0
mov ecx, eax
call fcn.00407930
movzx eax, al
test eax, eax
jne 0x409fb2
lea ecx, [ebp - 0x5ec]
push ecx
lea edx, [ebp - 0x5e0]
push edx
lea eax, [ebp - 0x628]
push eax
lea ecx, [ebp - 0x5c0]
call fcn.00407bf0
mov ecx, eax
call fcn.00407930
movzx ecx, al
test ecx, ecx
je 0x40a022
lea edx, [ebp - 0x5c0]
push edx
lea ecx, [ebp - 0x5e0]
call fcn.00407b70
movzx eax, al
test eax, eax
je 0x409fe4
lea ecx, [ebp - 0x5e0]
push ecx
lea edx, [ebp - 0x294]
push edx
mov ecx, dword [ebp - 0x638]
call fcn.0040a190
push 0x10
push str.Error
push str.Playback_password_has_expired_
mov ecx, dword [ebp - 0x638]
add ecx, 4
call fcn.0040bc80
mov dword [ebp - 0x62c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x74]
call fcn.004011a0
mov eax, dword [ebp - 0x62c]
jmp 0x40a166
lea eax, [ebp - 0x5d4]
push eax
lea ecx, [ebp - 0x294]
push ecx
mov ecx, dword [ebp - 0x638]
call fcn.0040a190
push str.___Expiration_Date:__Y__m__d_
lea edx, [ebp - 0x630]
push edx
lea ecx, [ebp - 0x5e0]
call fcn.00407cf0
mov dword [ebp - 0x6a0], eax
mov ecx, dword [ebp - 0x6a0]
call fcn.0041ebc0
mov dword [ebp - 0x6a4], eax
mov eax, dword [ebp - 0x638]
add eax, 0xfc
mov dword [ebp - 0x6a8], eax
mov ecx, dword [ebp - 0x6a8]
mov dword [ebp - 0x6ac], ecx
mov edx, dword [ebp - 0x6a4]
mov ax, word [edx]
mov word [ebp - 0x6ae], ax
mov ecx, dword [ebp - 0x6a8]
mov dx, word [ebp - 0x6ae]
mov word [ecx], dx
mov eax, dword [ebp - 0x6a4]
add eax, 2
mov dword [ebp - 0x6a4], eax
mov ecx, dword [ebp - 0x6a8]
add ecx, 2
mov dword [ebp - 0x6a8], ecx
cmp word [ebp - 0x6ae], 0
jne 0x40a086
lea ecx, [ebp - 0x630]
call fcn.0042edc0
mov edx, dword [ebp - 0x638]
mov dword [edx + 0x1bc], 0
jmp 0x40a147
movzx eax, byte [ebp - 0x94]
cmp eax, 0x70
jne 0x40a137
mov ecx, dword [ebp - 0x638]
mov edx, dword [ebp - 0x93]
mov dword [ecx + 0x1bc], edx
mov eax, dword [ebp - 0x638]
mov ecx, dword [eax + 0x1bc]
push ecx
push 0x461e30
push 0xc0
mov edx, dword [ebp - 0x638]
add edx, 0xfc
push edx
call fcn.0042ef10
add esp, 0x10
jmp 0x40a147
mov eax, dword [ebp - 0x638]
mov dword [eax + 0x1bc], 0
mov dword [ebp - 0x634], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x74]
call fcn.004011a0
mov eax, dword [ebp - 0x634]
lea esp, [ebp - 0x6bc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.00441cf2
mov esp, ebp
pop ebp
ret 8