Function at 0x10019da0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1010c1a0
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x1015a4dc]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov edx, dword [ebp + 8]
test edx, edx
jne 0x10019dd3
xor ecx, ecx
jmp 0x10019def
mov ecx, edx
lea esi, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10019de0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebx + 4]
call fcn.100059b0
mov ecx, ebx
call fcn.1001c2f0
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001ac0e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str._filelist
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0
call fcn.10004440
test al, al
jne 0x10019e5d
mov ecx, str._filelist
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10019e40
sub ecx, edx
sar ecx, 1
push ecx
push str._filelist
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebp + 8]
mov dword [ebp - 4], 1
push eax
mov ecx, ebx
call fcn.10019ba0
mov edx, dword [ebp + 8]
or esi, 0xffffffff
mov dword [ebx + 0x18], eax
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10019e96
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001ac18
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str._no_shortcuts
lea ecx, [ebp + 8]
mov dword [ebp - 4], 2
call fcn.10004440
test al, al
jne 0x10019eed
mov ecx, str._no_shortcuts
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10019ed0
sub ecx, edx
sar ecx, 1
push ecx
push str._no_shortcuts
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebp + 8]
mov dword [ebp - 4], 3
push eax
mov ecx, ebx
call fcn.10019ba0
mov edx, dword [ebp + 8]
mov dword [ebx + 0x40], eax
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10019f23
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001ac22
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str._autodown
lea ecx, [ebp + 8]
mov dword [ebp - 4], 4
call fcn.10004440
test al, al
jne 0x10019f7d
mov ecx, str._autodown
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10019f60
sub ecx, edx
sar ecx, 1
push ecx
push str._autodown
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebp + 8]
mov dword [ebp - 4], 5
push eax
mov ecx, ebx
call fcn.10019ba0
mov edx, dword [ebp + 8]
mov dword [ebx + 0x48], eax
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10019fb3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001ac2c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str._no_imi
lea ecx, [ebp + 8]
mov dword [ebp - 4], 6
call fcn.10004440
test al, al
jne 0x1001a00d
mov ecx, str._no_imi
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10019ff0
sub ecx, edx
sar ecx, 1
push ecx
push str._no_imi
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebp + 8]
mov dword [ebp - 4], 7
push eax
mov ecx, ebx
call fcn.10019ba0
mov edx, dword [ebp + 8]
test eax, eax
mov dword [ebp - 4], 0xffffffff
setne al
add edx, 0xfffffff0
mov byte [ebx + 0x30], al
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001a048
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001ac36
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str._closepop
lea ecx, [ebp + 8]
mov dword [ebp - 4], 8
call fcn.10004440
test al, al
jne 0x1001a09f
mov ecx, str._closepop
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a082
sub ecx, edx
sar ecx, 1
push ecx
push str._closepop
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebp + 8]
mov dword [ebp - 4], 9
push eax
mov ecx, ebx
call fcn.10019ba0
mov edx, dword [ebp + 8]
mov dword [ebx + 0x4c], eax
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001a0d5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001ac40
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str.__ref
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0xa
call fcn.10004440
test al, al
jne 0x1001a12d
mov ecx, str.__ref
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a110
sub ecx, edx
sar ecx, 1
push ecx
push str.__ref
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebp + 8]
mov dword [ebp - 4], 0xb
push eax
mov ecx, ebx
call fcn.10019ba0
mov edx, dword [ebp + 8]
mov dword [ebx + 0x50], eax
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001a163
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001ac4a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str.__ref
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0xc
call fcn.10004440
test al, al
jne 0x1001a1bd
mov ecx, str.__ref
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a1a0
sub ecx, edx
sar ecx, 1
push ecx
push str.__ref
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebx + 0x80]
mov dword [ebp - 4], 0xd
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193d0
mov edx, dword [ebp + 8]
mov eax, esi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001a1f7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001ac54
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str.__emdir
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0xe
call fcn.10004440
test al, al
jne 0x1001a24e
mov ecx, str.__emdir
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a231
sub ecx, edx
sar ecx, 1
push ecx
push str.__emdir
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebx + 0xc]
mov dword [ebp - 4], 0xf
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193d0
mov edx, dword [ebp + 8]
mov eax, esi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001a285
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001ac5e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str.__dir
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0x10
call fcn.10004440
test al, al
jne 0x1001a2dd
mov ecx, str.__dir
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a2c0
sub ecx, edx
sar ecx, 1
push ecx
push str.__dir
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebx + 8]
mov dword [ebp - 4], 0x11
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193d0
mov edx, dword [ebp + 8]
mov eax, esi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001a314
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001ac68
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str.__softid
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0x12
call fcn.10004440
test al, al
jne 0x1001a36d
mov ecx, str.__softid
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a350
sub ecx, edx
sar ecx, 1
push ecx
push str.__softid
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebx + 0x58]
mov dword [ebp - 4], 0x13
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193d0
mov edx, dword [ebp + 8]
mov eax, esi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001a3a4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001ac72
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str.__softname
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0x14
call fcn.10004440
test al, al
jne 0x1001a3fd
mov ecx, str.__softname
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a3e0
sub ecx, edx
sar ecx, 1
push ecx
push str.__softname
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebx + 0x5c]
mov dword [ebp - 4], 0x15
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193d0
mov edx, dword [ebp + 8]
mov eax, esi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001a434
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001ac7c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str.__sourceid
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0x16
call fcn.10004440
test al, al
jne 0x1001a48d
mov ecx, str.__sourceid
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a470
sub ecx, edx
sar ecx, 1
push ecx
push str.__sourceid
lea ecx, [ebp + 8]
call fcn.100059b0
lea edi, [ebx + 0x28]
mov dword [ebp - 4], 0x17
push edi
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193d0
mov edx, dword [ebp + 8]
mov eax, esi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001a4c4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001ac86
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str.__webid
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0x18
call fcn.10004440
test al, al
jne 0x1001a51d
mov ecx, str.__webid
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a500
sub ecx, edx
sar ecx, 1
push ecx
push str.__webid
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebx + 0x54]
mov dword [ebp - 4], 0x19
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193d0
mov edx, dword [ebp + 8]
mov eax, esi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001a554
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001ac90
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str.__ver
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0x1a
call fcn.10004440
test al, al
jne 0x1001a5ad
mov ecx, str.__ver
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a590
sub ecx, edx
sar ecx, 1
push ecx
push str.__ver
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebx + 0x68]
mov dword [ebp - 4], 0x1b
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193d0
mov edx, dword [ebp + 8]
mov eax, esi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001a5e4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001ac9a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str.__mid
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0x1c
call fcn.10004440
test al, al
jne 0x1001a63d
mov ecx, str.__mid
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a620
sub ecx, edx
sar ecx, 1
push ecx
push str.__mid
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebx + 0x6c]
mov dword [ebp - 4], 0x1d
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193d0
mov edx, dword [ebp + 8]
mov eax, esi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001a674
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001aca4
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str.__mid2
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0x1e
call fcn.10004440
test al, al
jne 0x1001a6cd
mov ecx, str.__mid2
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a6b0
sub ecx, edx
sar ecx, 1
push ecx
push str.__mid2
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebx + 0x70]
mov dword [ebp - 4], 0x1f
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193d0
mov edx, dword [ebp + 8]
mov eax, esi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001a704
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001acae
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str.__sourceid
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0x20
call fcn.10004440
test al, al
jne 0x1001a75d
mov ecx, str.__sourceid
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a740
sub ecx, edx
sar ecx, 1
push ecx
push str.__sourceid
lea ecx, [ebp + 8]
call fcn.100059b0
push edi
lea eax, [ebp + 8]
mov dword [ebp - 4], 0x21
push eax
mov ecx, ebx
call fcn.100193d0
mov edx, dword [ebp + 8]
mov eax, esi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001a791
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001acb8
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str.__osver
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0x22
call fcn.10004440
test al, al
jne 0x1001a7ed
mov ecx, str.__osver
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a7d0
sub ecx, edx
sar ecx, 1
push ecx
push str.__osver
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebx + 0x74]
mov dword [ebp - 4], 0x23
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193d0
mov edx, dword [ebp + 8]
mov eax, esi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001a824
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001acc2
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str.__osbit
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0x24
call fcn.10004440
test al, al
jne 0x1001a87d
mov ecx, str.__osbit
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a860
sub ecx, edx
sar ecx, 1
push ecx
push str.__osbit
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebx + 0x78]
mov dword [ebp - 4], 0x25
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193d0
mov edx, dword [ebp + 8]
mov eax, esi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001a8b4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001accc
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str.__sr
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0x26
call fcn.10004440
test al, al
jne 0x1001a90d
mov ecx, str.__sr
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a8f0
sub ecx, edx
sar ecx, 1
push ecx
push str.__sr
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebx + 0x7c]
mov dword [ebp - 4], 0x27
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193d0
mov edx, dword [ebp + 8]
mov eax, esi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001a944
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001acd6
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str.__exg
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0x28
call fcn.10004440
test al, al
jne 0x1001a99d
mov ecx, str.__exg
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a980
sub ecx, edx
sar ecx, 1
push ecx
push str.__exg
lea ecx, [ebp + 8]
call fcn.100059b0
lea eax, [ebx + 0x84]
mov dword [ebp - 4], 0x29
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193d0
mov edx, dword [ebp + 8]
mov eax, esi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001a9d7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp + 0xc], 1
jne 0x1001aa59
mov edx, dword [ebx + 0x14]
lea edi, [ebx + 0x14]
mov dword [ebp + 8], 0x104
mov ecx, 1
mov dword [ebp + 0xc], 1
mov eax, dword [edx - 8]
sub ecx, dword [edx - 4]
sub eax, 0x104
or eax, ecx
jge 0x1001aa17
push 0x104
mov ecx, edi
call fcn.100053e0
mov edx, dword [edi]
cmp dword [edx - 8], 0x104
jl 0x1001ace0
mov dword [edx - 0xc], 0x104
xor ecx, ecx
mov eax, dword [edi]
mov word [eax + 0x208], cx
lea eax, [ebp + 8]
push eax
push edx
lea eax, [ebp + 0xc]
push eax
push 0x1011abd4
push str.SOFTWAREPCStoreX
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
jmp 0x1001ab06
push 0x1011abd4
push ecx
mov edi, esp
mov dword [ebp + 0xc], edi
call fcn.100103c0
mov ecx, eax
test ecx, ecx
je 0x1001acea
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi], eax
push 0xd0
mov ecx, edi
mov dword [ebp - 4], 0x2a
call fcn.10004440
test al, al
jne 0x1001aabc
mov ecx, 0xd0
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001aaa0
sub ecx, edx
sar ecx, 1
push ecx
push 0xd0
mov ecx, edi
call fcn.100059b0
push str.__pid
lea eax, [ebp + 8]
mov dword [ebp - 4], 0xffffffff
push eax
mov ecx, ebx
call fcn.100192c0
lea edi, [ebx + 0x14]
mov dword [ebp - 4], 0x2b
push eax
mov ecx, edi
call fcn.1000e8a0
mov edx, dword [ebp + 8]
mov eax, esi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001ab06
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi]
cmp dword [eax - 0xc], 6
jg 0x1001ab22
add eax, 0xfffffff0
push eax
call fcn.10004580
add esp, 4
lea esi, [eax + 0x10]
mov dword [ebp + 8], esi
jmp 0x1001ab4e
mov ecx, dword [eax - 0x10]
test ecx, ecx
je 0x1001ab32
mov eax, dword [ecx]
call dword [eax + 0x10]
test eax, eax
jne 0x1001ab3e
call fcn.100103c0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
push eax
push 6
push dword [edi]
lea ecx, [ebp + 8]
call fcn.1000e320
mov esi, dword [ebp + 8]
push str.ldsimp
push esi
mov dword [ebp - 4], 0x2c
call fcn.100c2f00
add esp, 8
neg eax
sbb eax, eax
neg eax
push str.FROM
push ecx
mov edi, esp
mov dword [ebx + 0x44], eax
mov dword [ebp + 0xc], edi
mov eax, dword [ebx + 0x14]
sub eax, 0x10
push eax
call fcn.10004580
add esp, 4
add eax, 0x10
mov dword [edi], eax
mov ecx, ebx
lea eax, [ebp - 0x10]
push str.__from
push eax
call fcn.100192c0
push eax
lea ecx, [ebx + 0x64]
mov byte [ebp - 4], 0x2d
call fcn.1000e8a0
mov edx, dword [ebp - 0x10]
or edi, 0xffffffff
mov byte [ebp - 4], 0x2c
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001abc9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebx + 0x40], 0
je 0x1001abd9
mov word [ebx + 0x2c], 0
mov byte [ebx + 0x2f], 0
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], edi
dec edi
test edi, edi
jg 0x1001abf5
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80004005
call fcn.10004420
push 0x80070057
call fcn.10004420
push 0x80004005
call fcn.10004420
int3