Function at 0x10019db0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10118d00
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x101684dc]
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 0x10019de3
xor ecx, ecx
jmp 0x10019dff
mov ecx, edx
lea esi, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10019df0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebx + 4]
call fcn.100059d0
mov ecx, ebx
call fcn.1001c300
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001ac1e
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.10004460
test al, al
jne 0x10019e6d
mov ecx, str._filelist
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10019e50
sub ecx, edx
sar ecx, 1
push ecx
push str._filelist
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebp + 8]
mov dword [ebp - 4], 1
push eax
mov ecx, ebx
call fcn.10019bb0
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 0x10019ea6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001ac28
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.10004460
test al, al
jne 0x10019efd
mov ecx, str._no_shortcuts
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10019ee0
sub ecx, edx
sar ecx, 1
push ecx
push str._no_shortcuts
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebp + 8]
mov dword [ebp - 4], 3
push eax
mov ecx, ebx
call fcn.10019bb0
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 0x10019f33
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001ac32
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.10004460
test al, al
jne 0x10019f8d
mov ecx, str._autodown
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10019f70
sub ecx, edx
sar ecx, 1
push ecx
push str._autodown
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebp + 8]
mov dword [ebp - 4], 5
push eax
mov ecx, ebx
call fcn.10019bb0
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 0x10019fc3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001ac3c
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.10004460
test al, al
jne 0x1001a01d
mov ecx, str._no_imi
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a000
sub ecx, edx
sar ecx, 1
push ecx
push str._no_imi
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebp + 8]
mov dword [ebp - 4], 7
push eax
mov ecx, ebx
call fcn.10019bb0
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 0x1001a058
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001ac46
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.10004460
test al, al
jne 0x1001a0af
mov ecx, str._closepop
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a092
sub ecx, edx
sar ecx, 1
push ecx
push str._closepop
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebp + 8]
mov dword [ebp - 4], 9
push eax
mov ecx, ebx
call fcn.10019bb0
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 0x1001a0e5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001ac50
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.10004460
test al, al
jne 0x1001a13d
mov ecx, str.__ref
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a120
sub ecx, edx
sar ecx, 1
push ecx
push str.__ref
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebp + 8]
mov dword [ebp - 4], 0xb
push eax
mov ecx, ebx
call fcn.10019bb0
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 0x1001a173
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001ac5a
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.10004460
test al, al
jne 0x1001a1cd
mov ecx, str.__ref
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a1b0
sub ecx, edx
sar ecx, 1
push ecx
push str.__ref
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebx + 0x80]
mov dword [ebp - 4], 0xd
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193e0
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 0x1001a207
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001ac64
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.10004460
test al, al
jne 0x1001a25e
mov ecx, str.__emdir
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a241
sub ecx, edx
sar ecx, 1
push ecx
push str.__emdir
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebx + 0xc]
mov dword [ebp - 4], 0xf
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193e0
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 0x1001a295
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001ac6e
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.10004460
test al, al
jne 0x1001a2ed
mov ecx, str.__dir
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a2d0
sub ecx, edx
sar ecx, 1
push ecx
push str.__dir
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebx + 8]
mov dword [ebp - 4], 0x11
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193e0
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 0x1001a324
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001ac78
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.10004460
test al, al
jne 0x1001a37d
mov ecx, str.__softid
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a360
sub ecx, edx
sar ecx, 1
push ecx
push str.__softid
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebx + 0x58]
mov dword [ebp - 4], 0x13
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193e0
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 0x1001a3b4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001ac82
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.10004460
test al, al
jne 0x1001a40d
mov ecx, str.__softname
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a3f0
sub ecx, edx
sar ecx, 1
push ecx
push str.__softname
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebx + 0x5c]
mov dword [ebp - 4], 0x15
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193e0
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 0x1001a444
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001ac8c
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.10004460
test al, al
jne 0x1001a49d
mov ecx, str.__sourceid
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a480
sub ecx, edx
sar ecx, 1
push ecx
push str.__sourceid
lea ecx, [ebp + 8]
call fcn.100059d0
lea edi, [ebx + 0x28]
mov dword [ebp - 4], 0x17
push edi
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193e0
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 0x1001a4d4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001ac96
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.10004460
test al, al
jne 0x1001a52d
mov ecx, str.__webid
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a510
sub ecx, edx
sar ecx, 1
push ecx
push str.__webid
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebx + 0x54]
mov dword [ebp - 4], 0x19
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193e0
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 0x1001a564
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001aca0
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.10004460
test al, al
jne 0x1001a5bd
mov ecx, str.__ver
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a5a0
sub ecx, edx
sar ecx, 1
push ecx
push str.__ver
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebx + 0x68]
mov dword [ebp - 4], 0x1b
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193e0
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 0x1001a5f4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001acaa
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.10004460
test al, al
jne 0x1001a64d
mov ecx, str.__mid
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a630
sub ecx, edx
sar ecx, 1
push ecx
push str.__mid
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebx + 0x6c]
mov dword [ebp - 4], 0x1d
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193e0
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 0x1001a684
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001acb4
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.10004460
test al, al
jne 0x1001a6dd
mov ecx, str.__mid2
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a6c0
sub ecx, edx
sar ecx, 1
push ecx
push str.__mid2
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebx + 0x70]
mov dword [ebp - 4], 0x1f
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193e0
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 0x1001a714
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001acbe
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.10004460
test al, al
jne 0x1001a76d
mov ecx, str.__sourceid
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a750
sub ecx, edx
sar ecx, 1
push ecx
push str.__sourceid
lea ecx, [ebp + 8]
call fcn.100059d0
push edi
lea eax, [ebp + 8]
mov dword [ebp - 4], 0x21
push eax
mov ecx, ebx
call fcn.100193e0
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 0x1001a7a1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001acc8
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.10004460
test al, al
jne 0x1001a7fd
mov ecx, str.__osver
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a7e0
sub ecx, edx
sar ecx, 1
push ecx
push str.__osver
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebx + 0x74]
mov dword [ebp - 4], 0x23
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193e0
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 0x1001a834
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001acd2
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.10004460
test al, al
jne 0x1001a88d
mov ecx, str.__osbit
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a870
sub ecx, edx
sar ecx, 1
push ecx
push str.__osbit
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebx + 0x78]
mov dword [ebp - 4], 0x25
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193e0
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 0x1001a8c4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001acdc
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.10004460
test al, al
jne 0x1001a91d
mov ecx, str.__sr
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a900
sub ecx, edx
sar ecx, 1
push ecx
push str.__sr
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebx + 0x7c]
mov dword [ebp - 4], 0x27
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193e0
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 0x1001a954
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001ace6
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.10004460
test al, al
jne 0x1001a9ad
mov ecx, str.__exg
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001a990
sub ecx, edx
sar ecx, 1
push ecx
push str.__exg
lea ecx, [ebp + 8]
call fcn.100059d0
lea eax, [ebx + 0x84]
mov dword [ebp - 4], 0x29
push eax
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.100193e0
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 0x1001a9e7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp + 0xc], 1
jne 0x1001aa69
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 0x1001aa27
push 0x104
mov ecx, edi
call fcn.10005400
mov edx, dword [edi]
cmp dword [edx - 8], 0x104
jl 0x1001acf0
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 0x10127bd4
push str.SOFTWAREPCStoreX
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
jmp 0x1001ab16
push 0x10127bd4
push ecx
mov edi, esp
mov dword [ebp + 0xc], edi
call fcn.100103e0
mov ecx, eax
test ecx, ecx
je 0x1001acfa
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.10004460
test al, al
jne 0x1001aacc
mov ecx, 0xd0
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1001aab0
sub ecx, edx
sar ecx, 1
push ecx
push 0xd0
mov ecx, edi
call fcn.100059d0
push str.__pid
lea eax, [ebp + 8]
mov dword [ebp - 4], 0xffffffff
push eax
mov ecx, ebx
call fcn.100192d0
lea edi, [ebx + 0x14]
mov dword [ebp - 4], 0x2b
push eax
mov ecx, edi
call fcn.1000e8c0
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 0x1001ab16
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi]
cmp dword [eax - 0xc], 6
jg 0x1001ab32
add eax, 0xfffffff0
push eax
call fcn.100045a0
add esp, 4
lea esi, [eax + 0x10]
mov dword [ebp + 8], esi
jmp 0x1001ab5e
mov ecx, dword [eax - 0x10]
test ecx, ecx
je 0x1001ab42
mov eax, dword [ecx]
call dword [eax + 0x10]
test eax, eax
jne 0x1001ab4e
call fcn.100103e0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
push eax
push 6
push dword [edi]
lea ecx, [ebp + 8]
call fcn.1000e340
mov esi, dword [ebp + 8]
push str.ldsimp
push esi
mov dword [ebp - 4], 0x2c
call fcn.100cbb71
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.100045a0
add esp, 4
add eax, 0x10
mov dword [edi], eax
mov ecx, ebx
lea eax, [ebp - 0x10]
push str.__from
push eax
call fcn.100192d0
push eax
lea ecx, [ebx + 0x64]
mov byte [ebp - 4], 0x2d
call fcn.1000e8c0
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 0x1001abd9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebx + 0x40], 0
je 0x1001abe9
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 0x1001ac05
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.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80004005
call fcn.10004440
push 0x80070057
call fcn.10004440
push 0x80004005
call fcn.10004440
int3