Function at 0x1013b990
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1019a36a
mov eax, dword fs:[0]
push eax
sub esp, 0xc70
mov eax, dword [0x101d8724]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xc6c], ecx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 8]
push ecx
lea ecx, [ebp - 0x8c]
call fcn.1008b8f0
mov dword [ebp - 4], 0
cmp dword [ebp - 0x8c], 0
je 0x1013b9f4
mov edx, dword [ebp - 0x8c]
mov eax, dword [edx]
mov dword [ebp - 0xc70], eax
jmp 0x1013b9fe
mov dword [ebp - 0xc70], 0
mov ecx, dword [ebp - 0xc70]
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0xbe8], 0x1000
lea edx, [ebp - 0xbe1]
mov dword [ebp - 0xbe0], edx
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0
lea eax, [ebp - 0x88]
mov dword [ebp - 0xc74], eax
mov byte [ebp - 4], 1
mov cl, byte [ebp - 0xbe2]
mov byte [ebp - 0xbd9], cl
movzx edx, byte [ebp - 0xbd9]
push edx
push 0
mov eax, dword [ebp - 0xbe8]
push eax
lea ecx, [ebp - 0x88]
call fcn.100e6050
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x78]
push ecx
lea ecx, [ebp - 0x74]
call fcn.100e1330
mov dword [ebp - 0xc78], eax
mov edx, dword [ebp - 0xc78]
mov dword [ebp - 0xc7c], edx
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0xbec], eax
mov ecx, dword [ebp - 0xc7c]
call fcn.100e1870
push eax
mov ecx, dword [ebp - 0xbec]
push ecx
call fcn.1014e930
add esp, 8
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x74]
call fcn.10063f10
mov dword [ebp - 0x90], 0
jmp 0x1013bae4
mov edx, dword [ebp - 0x90]
add edx, 1
mov dword [ebp - 0x90], edx
mov eax, dword [ebp - 0x90]
cmp dword [eax*4 + 0x101d7fd0], 0
je 0x1013c2ff
mov ecx, dword [ebp - 0x90]
mov edx, dword [ecx*4 + 0x101d7fd0]
push edx
call fcn.1014e8a0
add esp, 4
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0xc00], eax
mov ecx, dword [ebp - 0x94]
push ecx
mov edx, dword [ebp - 0x90]
mov eax, dword [edx*4 + 0x101d7fd0]
push eax
mov ecx, dword [ebp - 0xc00]
push ecx
call fcn.10164467
add esp, 0xc
test eax, eax
jne 0x1013bc3c
mov edx, dword [ebp - 0x88]
add edx, dword [ebp - 0x94]
movsx eax, byte [edx]
test eax, eax
je 0x1013bb77
mov ecx, dword [ebp - 0x88]
add ecx, dword [ebp - 0x94]
movsx edx, byte [ecx]
cmp edx, 0x2f
jne 0x1013bc3c
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax*4 + 0x101d7fd0]
mov dword [ebp - 0xc08], ecx
mov edx, dword [ebp - 0xc6c]
mov eax, dword [edx + 4]
mov dword [ebp - 0xc04], eax
mov ecx, dword [ebp - 0xc04]
mov edx, dword [ebp - 0xc08]
mov dword [ecx + 0x54], edx
mov byte [0x101e9070], 0
mov eax, dword [ebp - 0x88]
add eax, dword [ebp - 0x94]
movsx ecx, byte [eax]
cmp ecx, 0x2f
jne 0x1013bbe1
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x88]
lea ecx, [eax + edx + 1]
push ecx
push 0x101e9070
call fcn.1014e930
add esp, 8
or edx, 0xffffffff
mov eax, dword [ebp + 0x20]
mov word [eax], dx
mov dword [ebp - 0xbc4], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x88]
call fcn.1005e070
mov byte [ebp - 4], 0
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x8c], 0
je 0x1013bc2c
mov ecx, dword [ebp - 0x8c]
call fcn.1008b9f0
mov dword [ebp - 0x8c], 0
mov eax, dword [ebp - 0xbc4]
jmp 0x1013c35d
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0xc0c], ecx
mov edx, dword [ebp - 0x94]
push edx
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax*4 + 0x101d7fd0]
push ecx
mov edx, dword [ebp - 0xc0c]
push edx
call fcn.10164467
add esp, 0xc
test eax, eax
jne 0x1013c2fa
mov eax, dword [ebp - 0x88]
add eax, dword [ebp - 0x94]
movsx ecx, byte [eax]
cmp ecx, 0x3f
jne 0x1013c2fa
mov edx, dword [ebp - 0x88]
add edx, dword [ebp - 0x94]
mov byte [edx], 0
call fcn.1013c3e0
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x88]
lea edx, [ecx + eax + 1]
mov dword [ebp - 0x98], edx
mov dword [ebp - 0x9c], 0
jmp 0x1013bcd1
mov eax, dword [ebp - 0x9c]
add eax, 1
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0xa
jge 0x1013be84
cmp dword [ebp - 0x98], 0
je 0x1013be84
mov ecx, dword [ebp - 0x98]
movsx edx, byte [ecx]
test edx, edx
je 0x1013be84
push 0x26
mov eax, dword [ebp - 0x98]
push eax
call fcn.1014f220
add esp, 8
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa0], 0
cmp dword [ebp - 0xa8], 0
jne 0x1013bd3f
push 0
mov ecx, dword [ebp - 0x98]
push ecx
call fcn.1014f220
add esp, 8
mov dword [ebp - 0xa8], eax
jmp 0x1013bd57
mov edx, dword [ebp - 0xa8]
mov byte [edx], 0
mov eax, dword [ebp - 0xa8]
add eax, 1
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp - 0x9c]
shl ecx, 9
add ecx, 0x101e7c68
mov dword [ebp - 0xa4], ecx
mov edx, dword [ebp - 0x98]
movsx eax, byte [edx]
test eax, eax
je 0x1013be6a
mov ecx, dword [ebp - 0x98]
movsx edx, byte [ecx]
cmp edx, 0x25
jne 0x1013be00
mov eax, dword [ebp - 0x98]
movsx ecx, byte [eax + 1]
test ecx, ecx
je 0x1013be00
mov edx, dword [ebp - 0x98]
movsx eax, byte [edx + 2]
test eax, eax
je 0x1013be00
mov ecx, dword [ebp - 0x98]
movzx edx, byte [ecx + 1]
push edx
call fcn.1013c380
add esp, 4
movsx ebx, al
shl ebx, 4
mov eax, dword [ebp - 0x98]
movzx ecx, byte [eax + 2]
push ecx
call fcn.1013c380
add esp, 4
movsx edx, al
or ebx, edx
mov eax, dword [ebp - 0xa4]
mov byte [eax], bl
mov ecx, dword [ebp - 0xa4]
add ecx, 1
mov dword [ebp - 0xa4], ecx
mov edx, dword [ebp - 0x98]
add edx, 3
mov dword [ebp - 0x98], edx
jmp 0x1013be65
mov eax, dword [ebp - 0x98]
movsx ecx, byte [eax]
cmp ecx, 0x2b
jne 0x1013be37
mov edx, dword [ebp - 0xa4]
mov byte [edx], 0x20
mov eax, dword [ebp - 0xa4]
add eax, 1
mov dword [ebp - 0xa4], eax
mov ecx, dword [ebp - 0x98]
add ecx, 1
mov dword [ebp - 0x98], ecx
jmp 0x1013be65
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x98]
mov cl, byte [eax]
mov byte [edx], cl
mov edx, dword [ebp - 0xa4]
add edx, 1
mov dword [ebp - 0xa4], edx
mov eax, dword [ebp - 0x98]
add eax, 1
mov dword [ebp - 0x98], eax
jmp 0x1013bd6c
mov ecx, dword [ebp - 0xa4]
mov byte [ecx], 0
mov edx, dword [ebp - 0xa0]
mov dword [ebp - 0x98], edx
jmp 0x1013bcc2
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0xc10], eax
push str.close:enterkey
mov ecx, dword [ebp - 0xc10]
push ecx
call fcn.1015d9f0
add esp, 8
test eax, eax
jne 0x1013bf77
mov byte [ebp - 0x2ac], 0
push 0xff
push 0
lea edx, [ebp - 0x2ab]
push edx
call fcn.1014e270
add esp, 0xc
mov byte [ebp - 0x1ac], 0
push 0xff
push 0
lea eax, [ebp - 0x1ab]
push eax
call fcn.1014e270
add esp, 0xc
push str.name
call fcn.1013c400
add esp, 4
push eax
lea ecx, [ebp - 0x2ac]
push ecx
call fcn.1014e930
add esp, 8
push 0x101a6e70
call fcn.1013c400
add esp, 4
push eax
lea edx, [ebp - 0x1ac]
push edx
call fcn.1014e930
add esp, 8
mov eax, dword [ebp - 0xc6c]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 0x28]
mov dword [ebp - 0xc14], edx
lea eax, [ebp - 0x1ac]
push eax
lea ecx, [ebp - 0x2ac]
push ecx
mov edx, dword [ebp - 0xc14]
push edx
call fcn.100c7380
add esp, 0xc
movzx eax, al
test eax, eax
je 0x1013bf72
mov ecx, dword [ebp - 0xc6c]
mov edx, dword [ecx + 4]
mov dword [ebp - 0xc18], edx
mov eax, dword [ebp - 0xc18]
mov dword [eax + 0x54], 0x101a0fc1
jmp 0x1013c2a7
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0xc1c], ecx
push str.close:reissuekey
mov edx, dword [ebp - 0xc1c]
push edx
call fcn.1015d9f0
add esp, 8
test eax, eax
jne 0x1013c087
mov byte [ebp - 0x4ac], 0
push 0xff
push 0
lea eax, [ebp - 0x4ab]
push eax
call fcn.1014e270
add esp, 0xc
mov byte [ebp - 0x3ac], 0
push 0xff
push 0
lea ecx, [ebp - 0x3ab]
push ecx
call fcn.1014e270
add esp, 0xc
push str.purchasenumber
call fcn.1013c400
add esp, 4
push eax
lea edx, [ebp - 0x4ac]
push edx
call fcn.1014e930
add esp, 8
push str.password
call fcn.1013c400
add esp, 4
push eax
lea eax, [ebp - 0x3ac]
push eax
call fcn.1014e930
add esp, 8
movsx ecx, byte [ebp - 0x4ac]
test ecx, ecx
je 0x1013c029
movsx edx, byte [ebp - 0x3ac]
test edx, edx
jne 0x1013c02b
jmp 0x1013c082
push 0x400
push 0
push 0x101e9280
call fcn.1014e270
add esp, 0xc
lea eax, [ebp - 0x3ac]
push eax
lea ecx, [ebp - 0x4ac]
push ecx
mov edx, dword [ebp - 0x88]
push edx
push str._s_n_s_n_s
push 0x101e9280
call fcn.1014ea28
add esp, 0x14
mov eax, dword [ebp - 0xc6c]
mov ecx, dword [eax + 4]
mov dword [ebp - 0xc20], ecx
mov edx, dword [ebp - 0xc20]
mov dword [edx + 0x54], 0x101e9280
jmp 0x1013c2a7
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0xc24], eax
push str.close:swplite
mov ecx, dword [ebp - 0xc24]
push ecx
call fcn.1015d9f0
add esp, 8
test eax, eax
jne 0x1013c276
push str.vendor
call fcn.1013c400
add esp, 4
push eax
lea edx, [ebp - 0xabc]
push edx
call fcn.1014e930
add esp, 8
push 0x101a3d10
call fcn.1013c400
add esp, 4
push eax
lea eax, [ebp - 0x5b4]
push eax
call fcn.1014e930
add esp, 8
push str.version
call fcn.1013c400
add esp, 4
push eax
lea ecx, [ebp - 0xbbc]
push ecx
call fcn.1014e930
add esp, 8
lea edx, [ebp - 0xbbc]
push edx
lea eax, [ebp - 0x5b4]
push eax
lea ecx, [ebp - 0xabc]
push ecx
push str.SoftwareDigital_RiverSoftwarePassport_s_s_s
lea edx, [ebp - 0x9bc]
push edx
call fcn.1014ea28
add esp, 0x14
mov dword [ebp - 0xbc0], 0x400
push 0x400
push 0
push 0x101e9280
call fcn.1014e270
add esp, 0xfffffffc
mov eax, esp
mov ecx, dword [ebp - 0x88]
mov dword [eax], ecx
mov edx, dword [ebp - 0x84]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0x80]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0xc], edx
push 0x101a7214
push 0x101e9280
call fcn.1014ea28
add esp, 0x18
mov eax, dword [ebp - 0xbc0]
sub eax, 0xe
mov dword [ebp - 0xbc0], eax
lea ecx, [ebp - 0x5b8]
push ecx
lea edx, [ebp - 0x4b0]
push edx
push 0
push 0x20019
push 0
push 0
push 0
lea eax, [ebp - 0x9bc]
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
lea ecx, [ebp - 0xbc0]
push ecx
push 0x101e928e
push 0
push 0
push str.BuyURL
mov edx, dword [ebp - 0x4b0]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x1013c22f
lea eax, [ebp - 0x5b8]
push eax
lea ecx, [ebp - 0x4b0]
push ecx
push 0
push 0x20019
push 0
push 0
push 0
lea edx, [ebp - 0x9bc]
push edx
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
lea eax, [ebp - 0xbc0]
push eax
push 0x101e928e
push 0
push 0
push str.BuyURL
mov ecx, dword [ebp - 0x4b0]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push 0x101e928e
call fcn.1014e8a0
add esp, 4
test eax, eax
jne 0x1013c258
mov ecx, 0x101dafb0
call fcn.10080280
push eax
push 0x101e928e
call fcn.1014e930
add esp, 8
mov edx, dword [ebp - 0xc6c]
mov eax, dword [edx + 4]
mov dword [ebp - 0xc28], eax
mov ecx, dword [ebp - 0xc28]
mov dword [ecx + 0x54], 0x101e9280
jmp 0x1013c2a7
mov edx, dword [ebp - 0x90]
mov eax, dword [edx*4 + 0x101d7fd0]
mov dword [ebp - 0xc30], eax
mov ecx, dword [ebp - 0xc6c]
mov edx, dword [ecx + 4]
mov dword [ebp - 0xc2c], edx
mov eax, dword [ebp - 0xc2c]
mov ecx, dword [ebp - 0xc30]
mov dword [eax + 0x54], ecx
or edx, 0xffffffff
mov eax, dword [ebp + 0x20]
mov word [eax], dx
mov dword [ebp - 0xbc8], 0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x88]
call fcn.1005e070
mov byte [ebp - 4], 0
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x8c], 0
je 0x1013c2f2
mov ecx, dword [ebp - 0x8c]
call fcn.1008b9f0
mov dword [ebp - 0x8c], 0
mov eax, dword [ebp - 0xbc8]
jmp 0x1013c35d
jmp 0x1013bad5
xor ecx, ecx
mov edx, dword [ebp + 0x20]
mov word [edx], cx
mov eax, dword [ebp - 0xc6c]
mov ecx, dword [eax + 4]
call fcn.1013ca10
mov dword [ebp - 0xbcc], 0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x88]
call fcn.1005e070
mov byte [ebp - 4], 0
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x8c], 0
je 0x1013c357
mov ecx, dword [ebp - 0x8c]
call fcn.1008b9f0
mov dword [ebp - 0x8c], 0
mov eax, dword [ebp - 0xbcc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1014c68a
mov esp, ebp
pop ebp
ret 0x1c