Function at 0x436ed0
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5e169d
mov eax, dword fs:[0]
push eax
sub esp, 0x1d4
mov eax, dword [0x663000]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
xor eax, eax
mov dword [ebp - 0x184], 0
mov dword [ebp - 0x174], 0
mov dword [ebp - 0x170], 7
mov word [ebp - 0x184], ax
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x184]
push str.srl::Applications::Detect
mov byte [ebp - 0x188], al
call fcn.00415110
mov dword [ebp - 4], 1
call fcn.0041ca00
cmp dword [eax + 4], 4
jl 0x436f5f
push ecx
lea ecx, [ebp - 0x188]
call fcn.00412f80
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x1b4], 0
push 0
push 0x116f3
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 3
call fcn.0041de30
push 0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 4
push ecx
push eax
call fcn.00444dc0
lea ecx, [ebp - 0x12c]
call fcn.0041e070
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x1b4], 0
push 0
push 0x116f5
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 5
call fcn.0041de30
push 0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 6
push ecx
push eax
call fcn.00444dc0
lea ecx, [ebp - 0x12c]
call fcn.0041e070
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x1b4], 0
push 0
push 0x116f7
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 7
call fcn.0041de30
push 0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 8
push ecx
push eax
call fcn.00444dc0
lea ecx, [ebp - 0x12c]
call fcn.0041e070
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x1b4], 0
push 0
push 0x116f9
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 9
call fcn.0041de30
push 0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0xa
push ecx
push eax
call fcn.00444dc0
lea ecx, [ebp - 0x12c]
call fcn.0041e070
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x1b4], 0
push 0
push 0x116fb
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 0xb
call fcn.0041de30
push 0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0xc
push ecx
push eax
call fcn.00444dc0
lea ecx, [ebp - 0x12c]
call fcn.0041e070
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x1b4], 0
push 0
push 0x11702
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 0xd
call fcn.0041de30
push 0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0xe
push ecx
push eax
call fcn.00444dc0
lea ecx, [ebp - 0x12c]
call fcn.0041e070
mov dword [ebp - 0x1d8], 0
mov dword [ebp - 0x1d4], 0
mov dword [ebp - 0x1d0], 0
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 0x1bc]
push eax
push 0x20019
push 0
push str.SOFTWAREMacromediaFlashPlayer
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x1bc], 0
call edi
test eax, eax
jne 0x4371b9
mov ebx, dword [ebp - 0x1bc]
mov dword [ebp - 0x1d4], eax
lea eax, [ebp - 0x1bc]
push eax
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x1d8], ebx
push eax
lea eax, [ebp - 0x1c8]
mov dword [ebp - 0x1bc], 0x28
push eax
push 0
push str.CurrentVersion
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4371b9
mov eax, dword [ebp - 0x1c8]
cmp eax, 1
je 0x437199
cmp eax, 2
jne 0x4371b9
mov eax, dword [ebp - 0x1bc]
test eax, eax
je 0x437255
test al, 1
jne 0x4371b9
shr eax, 1
cmp word [ebp + eax*2 - 0x3e], 0
je 0x43725b
or esi, 0xffffffff
xor eax, eax
mov dword [ebp - 0x16c], 0
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x158], 7
mov word [ebp - 0x16c], ax
push str.wmplayer.exe
lea ecx, [ebp - 0x11c]
mov byte [ebp - 4], 0x14
call fcn.00407953
lea edx, [ebp - 0x16c]
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x11c]
call fcn.00436470
mov byte [ebp - 4], 0x14
mov bl, al
mov ecx, dword [ebp - 0x108]
cmp ecx, 8
jb 0x437320
mov edx, dword [ebp - 0x11c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x437316
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4381a2
jmp 0x437316
xor eax, eax
mov word [ebp - 0x3c], ax
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x1b4], 1
push 0
push 0x116f1
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 0x10
call fcn.0041de30
push 0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0x11
push ecx
push eax
call fcn.00444dc0
lea ecx, [ebp - 0x12c]
call fcn.0041e070
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x1b8]
call fcn.0045a970
mov esi, eax
push 0
push 0x116f2
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 0x12
call fcn.0041de30
push 0
push esi
push eax
mov byte [ebp - 4], 0x13
call fcn.00444dc0
lea ecx, [ebp - 0x12c]
call fcn.0041e070
mov byte [ebp - 4], 0xf
or esi, 0xffffffff
mov edx, dword [ebp - 0x1b4]
mov eax, esi
mov dword [ebp - method.srl::Version.virtual_0], vtable.srl::Version.0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4371bc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4371bc
push ecx
push edx
call fcn.005af9e7
add esp, 8
test bl, bl
je 0x43749f
xor eax, eax
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 7
mov word [ebp - 0x144], ax
lea edx, [ebp - 0x144]
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x16c]
call fcn.004362c0
test al, al
je 0x43745b
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x1b4], 1
push 0
push 0x116f3
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 0x17
call fcn.0041de30
push 0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0x18
push ecx
push eax
call fcn.00444dc0
lea ecx, [ebp - 0x12c]
call fcn.0041e070
mov byte [ebp - 4], 0x16
mov dword [ebp - method.srl::Version.virtual_0], vtable.srl::Version.0
call fcn.0040cfd9
mov ecx, eax
test ecx, ecx
je 0x4381a7
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x1b4]
cmp dword [ebp - 0x130], 8
mov dword [ebp - 0x1b4], eax
lea eax, [ebp - 0x144]
cmovae eax, dword [ebp - 0x144]
push eax
call fcn.0040d9f0
push 0
push 0x11611
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 0x19
call fcn.0041de30
push 0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0x1a
push ecx
push eax
call fcn.00444dc0
lea ecx, [ebp - 0x12c]
call fcn.0041e070
mov byte [ebp - 4], 0x16
mov eax, esi
mov edx, dword [ebp - 0x1b4]
mov dword [ebp - method.srl::Version.virtual_0], vtable.srl::Version.0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43745b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x130]
cmp ecx, 8
jb 0x43749f
mov edx, dword [ebp - 0x144]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x437495
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x438215
push ecx
push edx
call fcn.005af9e7
add esp, 8
cmp dword [ebp - 0x158], 8
lea eax, [ebp - 0x16c]
mov dword [ebp - 0x15c], 0
cmovae eax, dword [ebp - 0x16c]
xor ecx, ecx
push str.AcroRd32.exe
mov word [eax], cx
lea ecx, [ebp - 0x11c]
call fcn.00407953
lea edx, [ebp - 0x16c]
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x11c]
call fcn.00436470
mov byte [ebp - 4], 0x14
mov bl, al
mov ecx, dword [ebp - 0x108]
cmp ecx, 8
jb 0x43752d
mov edx, dword [ebp - 0x11c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x437523
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4381b1
push ecx
push edx
call fcn.005af9e7
add esp, 8
test bl, bl
je 0x4376ac
xor eax, eax
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 7
mov word [ebp - 0x144], ax
lea edx, [ebp - 0x144]
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x16c]
call fcn.004362c0
test al, al
je 0x437668
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x1b4], 1
push 0
push 0x116f5
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 0x1d
call fcn.0041de30
push 0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0x1e
push ecx
push eax
call fcn.00444dc0
lea ecx, [ebp - 0x12c]
call fcn.0041e070
mov byte [ebp - 4], 0x1c
mov dword [ebp - method.srl::Version.virtual_0], vtable.srl::Version.0
call fcn.0040cfd9
mov ecx, eax
test ecx, ecx
je 0x4381b6
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x1b4]
cmp dword [ebp - 0x130], 8
mov dword [ebp - 0x1b4], eax
lea eax, [ebp - 0x144]
cmovae eax, dword [ebp - 0x144]
push eax
call fcn.0040d9f0
push 0
push 0x116f6
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 0x1f
call fcn.0041de30
push 0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0x20
push ecx
push eax
call fcn.00444dc0
lea ecx, [ebp - 0x12c]
call fcn.0041e070
mov byte [ebp - 4], 0x1c
mov eax, esi
mov edx, dword [ebp - 0x1b4]
mov dword [ebp - method.srl::Version.virtual_0], vtable.srl::Version.0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x437668
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x130]
cmp ecx, 8
jb 0x4376ac
mov edx, dword [ebp - 0x144]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4376a2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x438215
push ecx
push edx
call fcn.005af9e7
add esp, 8
cmp dword [ebp - 0x158], 8
lea eax, [ebp - 0x16c]
mov dword [ebp - 0x15c], 0
cmovae eax, dword [ebp - 0x16c]
xor ecx, ecx
push str.QuickTimePlayer.exe
mov word [eax], cx
lea ecx, [ebp - 0x11c]
call fcn.00407953
lea edx, [ebp - 0x16c]
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x11c]
call fcn.00436470
mov byte [ebp - 4], 0x14
mov bl, al
mov ecx, dword [ebp - 0x108]
cmp ecx, 8
jb 0x43773a
mov edx, dword [ebp - 0x11c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x437730
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4381c0
push ecx
push edx
call fcn.005af9e7
add esp, 8
test bl, bl
je 0x4378b9
xor eax, eax
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 7
mov word [ebp - 0x144], ax
lea edx, [ebp - 0x144]
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x16c]
call fcn.004362c0
test al, al
je 0x437875
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x1b4], 1
push 0
push 0x116f7
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 0x23
call fcn.0041de30
push 0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0x24
push ecx
push eax
call fcn.00444dc0
lea ecx, [ebp - 0x12c]
call fcn.0041e070
mov byte [ebp - 4], 0x22
mov dword [ebp - method.srl::Version.virtual_0], vtable.srl::Version.0
call fcn.0040cfd9
mov ecx, eax
test ecx, ecx
je 0x4381c5
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x1b4]
cmp dword [ebp - 0x130], 8
mov dword [ebp - 0x1b4], eax
lea eax, [ebp - 0x144]
cmovae eax, dword [ebp - 0x144]
push eax
call fcn.0040d9f0
push 0
push 0x116f8
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 0x25
call fcn.0041de30
push 0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0x26
push ecx
push eax
call fcn.00444dc0
lea ecx, [ebp - 0x12c]
call fcn.0041e070
mov byte [ebp - 4], 0x22
mov eax, esi
mov edx, dword [ebp - 0x1b4]
mov dword [ebp - method.srl::Version.virtual_0], vtable.srl::Version.0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x437875
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x130]
cmp ecx, 8
jb 0x4378b9
mov edx, dword [ebp - 0x144]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4378af
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x438215
push ecx
push edx
call fcn.005af9e7
add esp, 8
cmp dword [ebp - 0x158], 8
lea eax, [ebp - 0x16c]
mov dword [ebp - 0x15c], 0
cmovae eax, dword [ebp - 0x16c]
xor ecx, ecx
push str.Winword.exe
mov word [eax], cx
lea ecx, [ebp - 0x11c]
call fcn.00407953
lea edx, [ebp - 0x16c]
mov byte [ebp - 4], 0x27
lea ecx, [ebp - 0x11c]
call fcn.00436470
mov byte [ebp - 4], 0x14
mov bl, al
mov ecx, dword [ebp - 0x108]
cmp ecx, 8
jb 0x437947
mov edx, dword [ebp - 0x11c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x43793d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4381cf
push ecx
push edx
call fcn.005af9e7
add esp, 8
test bl, bl
je 0x437ac6
xor eax, eax
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 7
mov word [ebp - 0x144], ax
lea edx, [ebp - 0x144]
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x16c]
call fcn.004362c0
test al, al
je 0x437a82
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x1b4], 1
push 0
push 0x116f9
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 0x29
call fcn.0041de30
push 0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0x2a
push ecx
push eax
call fcn.00444dc0
lea ecx, [ebp - 0x12c]
call fcn.0041e070
mov byte [ebp - 4], 0x28
mov dword [ebp - method.srl::Version.virtual_0], vtable.srl::Version.0
call fcn.0040cfd9
mov ecx, eax
test ecx, ecx
je 0x4381d4
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x1b4]
cmp dword [ebp - 0x130], 8
mov dword [ebp - 0x1b4], eax
lea eax, [ebp - 0x144]
cmovae eax, dword [ebp - 0x144]
push eax
call fcn.0040d9f0
push 0
push 0x116fa
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 0x2b
call fcn.0041de30
push 0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0x2c
push ecx
push eax
call fcn.00444dc0
lea ecx, [ebp - 0x12c]
call fcn.0041e070
mov byte [ebp - 4], 0x28
mov eax, esi
mov edx, dword [ebp - 0x1b4]
mov dword [ebp - method.srl::Version.virtual_0], vtable.srl::Version.0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x437a82
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x130]
cmp ecx, 8
jb 0x437ac6
mov edx, dword [ebp - 0x144]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x437abc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x438215
push ecx
push edx
call fcn.005af9e7
add esp, 8
xor eax, eax
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x108], 7
mov word [ebp - 0x11c], ax
push str.3F0FC462_CDC1_4CD9_8E84_84D89B914EAA
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 0x2d
call fcn.00407953
lea edx, [ebp - 0x11c]
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x144]
call fcn.004366e0
mov byte [ebp - 4], 0x2d
mov bl, al
mov ecx, dword [ebp - 0x130]
cmp ecx, 8
jb 0x437b5c
mov edx, dword [ebp - 0x144]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x437b52
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4381de
push ecx
push edx
call fcn.005af9e7
add esp, 8
test bl, bl
je 0x437c53
mov dword [ebp - method.srl::Exists.virtual_0], vtable.srl::Exists.0
mov byte [ebp - 0x1b4], 1
push 0
push 0x11702
lea ecx, [ebp - 0x154]
mov byte [ebp - 4], 0x2f
call fcn.0041de30
push 0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0x30
push ecx
push eax
call fcn.00444dc0
lea ecx, [ebp - 0x154]
call fcn.0041e070
mov byte [ebp - 4], 0x2d
mov dword [ebp - method.srl::Version.virtual_0], vtable.srl::Version.0
call fcn.0040cfd9
mov ecx, eax
test ecx, ecx
je 0x4381e3
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x1b4]
cmp dword [ebp - 0x108], 8
mov dword [ebp - 0x1b4], eax
lea eax, [ebp - 0x11c]
cmovae eax, dword [ebp - 0x11c]
push eax
call fcn.0040d9f0
push 0
push 0x11703
lea ecx, [ebp - 0x154]
mov byte [ebp - 4], 0x31
call fcn.0041de30
push 0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0x32
push ecx
push eax
call fcn.00444dc0
lea ecx, [ebp - 0x154]
call fcn.0041e070
mov byte [ebp - 4], 0x2d
mov eax, esi
mov edx, dword [ebp - 0x1b4]
mov dword [ebp - method.srl::Version.virtual_0], vtable.srl::Version.0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x437c53
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor ebx, ebx
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x134], ebx
mov dword [ebp - 0x130], ebx
lea eax, [ebp - 0x1bc]
mov byte [ebp - 4], 0x33
push eax
push 0x20019
push ebx
push str.SOFTWAREJavaSoftJava_Runtime_Environment
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x1bc], ebx
call edi
test eax, eax
jne 0x437ca4
mov ebx, dword [ebp - 0x1bc]
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x134], eax
test eax, eax
je 0x437cf9
lea eax, [ebp - 0x1bc]
mov dword [ebp - 0x1bc], 0
push eax
push 0x20219
push 0
push str.SOFTWAREJavaSoftJava_Runtime_Environment
push reloc.OLEAUT32.dll_SysReAllocString
call edi
test eax, eax
jne 0x438074
test ebx, ebx
je 0x437cdb
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, dword [ebp - 0x1bc]
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x134], 0x200
test eax, eax
jne 0x438074
call fcn.0040cfd9
mov ecx, eax
test ecx, ecx
je 0x4381ed
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c4], eax
push 0x62de00
lea ecx, [ebp - 0x1c4]
mov byte [ebp - 4], 0x34
call fcn.0040d850
test al, al
jne 0x437d3e
push 0x62de00
lea ecx, [ebp - 0x1c4]
call fcn.0040d9f0
mov byte [ebp - 4], 0x35
xor cl, cl
mov esi, dword [ebp - 0x1c4]
xor eax, eax
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x1c8], 0x64
mov byte [ebp - 0x1bd], cl
test cl, cl
jne 0x437f53
lea ecx, [ebp - 0x1e0]
mov dword [ebp - 0x1c8], 0x64
push ecx
push 0
push 0
push 0
lea ecx, [ebp - 0x1c8]
push ecx
lea ecx, [ebp - 0x104]
push ecx
push eax
push ebx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
cmp eax, 0x103
jne 0x437da8
mov eax, dword [ebp - 0x1bc]
mov cl, 1
jmp 0x437d5c
mov edi, dword [esi - 0xc]
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, edi
jle 0x437f3b
lea edi, [ebp - 0x104]
lea ecx, [edi + 2]
nop dword [eax]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x437dd0
sub edi, ecx
sar edi, 1
jne 0x437e67
cmp dword [esi - 0xc], 0
lea edx, [esi - 0x10]
mov edi, dword [edx]
je 0x437f3b
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
jge 0x437e2b
cmp dword [esi - 8], 0
jl 0x4381f7
mov cl, byte [ebp - 0x1bd]
xor eax, eax
mov dword [esi - 0xc], 0
mov word [esi], ax
mov eax, dword [ebp - 0x1bc]
inc eax
mov dword [ebp - 0x1bc], eax
jmp 0x437d62
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x437e3f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xc]
mov cl, byte [ebp - 0x1bd]
lea esi, [eax + 0x10]
mov eax, dword [ebp - 0x1bc]
inc eax
mov dword [ebp - 0x1c4], esi
mov dword [ebp - 0x1bc], eax
jmp 0x437d62
mov eax, dword [esi - 0xc]
lea edx, [ebp - 0x104]
sub edx, esi
mov dword [ebp - 0x1b4], eax
sar edx, 1
mov dword [ebp - 0x1cc], edx
test edi, edi
js 0x438201
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x437eb1
push edi
lea ecx, [ebp - 0x1c4]
call fcn.0040208a
mov esi, dword [ebp - 0x1c4]
mov edx, dword [ebp - 0x1cc]
lea ebx, [edi + edi]
mov eax, dword [esi - 8]
cmp edx, dword [ebp - 0x1b4]
ja 0x437eea
lea ecx, [esi + edx*2]
test ebx, ebx
je 0x437f23
test ecx, ecx
jne 0x437ed7
call fcn.005b68e9
mov dword [eax], 0x16
jmp 0x437f1e
add eax, eax
cmp eax, ebx
jb 0x437f13
push ebx
push ecx
push esi
call fcn.005b31a0
add esp, 0xc
jmp 0x437f23
add eax, eax
test ebx, ebx
je 0x437f23
cmp eax, ebx
jb 0x437f07
push ebx
lea eax, [ebp - 0x104]
push eax
push esi
call fcn.005b31a0
add esp, 0xc
jmp 0x437f23
push eax
push 0
push esi
call fcn.005b3720
add esp, 0xc
call fcn.005b68e9
mov dword [eax], 0x22
call fcn.005b680f
cmp edi, dword [esi - 8]
jg 0x4381f7
xor eax, eax
mov dword [esi - 0xc], edi
mov word [esi + ebx], ax
mov ebx, dword [ebp - 0x138]
mov eax, dword [ebp - 0x1bc]
mov cl, byte [ebp - 0x1bd]
inc eax
mov dword [ebp - 0x1bc], eax
jmp 0x437d62
cmp dword [esi - 0xc], 0
jle 0x438058
push ecx
push 0x5f
lea ecx, [ebp - 0x1c4]
call fcn.00438220
mov esi, dword [ebp - 0x1c4]
lea ecx, [ebp - 0x1c4]
mov eax, dword [esi - 0xc]
add eax, 0xfffffffe
push eax
push 2
lea eax, [ebp - 0x1bc]
push eax
call fcn.00410430
mov byte [ebp - 4], 0x36
mov dword [ebp - method.srl::Version.virtual_0], vtable.srl::Version.0
call fcn.0040cfd9
mov ecx, eax
test ecx, ecx
je 0x43820b
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x1b4]
mov dword [ebp - 0x1b4], eax
lea eax, [ebp - 0x1bc]
push eax
call fcn.004106c0
push 0
push 0x1171e
lea ecx, [ebp - 0x1b0]
mov byte [ebp - 4], 0x37
call fcn.0041de30
push 0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0x38
push ecx
push eax
call fcn.00444dc0
lea ecx, [ebp - 0x1b0]
call fcn.0041e070
mov byte [ebp - 4], 0x36
or edi, 0xffffffff
mov edx, dword [ebp - 0x1b4]
mov eax, edi
mov dword [ebp - method.srl::Version.virtual_0], vtable.srl::Version.0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43802b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x35
mov eax, edi
mov edx, dword [ebp - 0x1bc]
mov dword [ebp - method.srl::Value.virtual_0], vtable.srl::Value.0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43805b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x43805b
or edi, 0xffffffff
mov byte [ebp - 4], 0x33
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], edi
dec edi
test edi, edi
jg 0x438074
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
test ebx, ebx
je 0x43807f
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x108]
cmp ecx, 8
jb 0x4380c3
mov edx, dword [ebp - 0x11c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4380b9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x438215
push ecx
push edx
call fcn.005af9e7
add esp, 8
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x158]
cmp ecx, 8
jb 0x438107
mov edx, dword [ebp - 0x16c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4380fd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x438215
push ecx
push edx
call fcn.005af9e7
add esp, 8
xor eax, eax
mov dword [ebp - 0x15c], 0
mov word [ebp - 0x16c], ax
mov eax, dword [ebp - 0x1d8]
mov dword [ebp - 0x158], 7
test eax, eax
je 0x438135
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x188]
call fcn.00414a10
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.005af765
mov esp, ebp
pop ebp
ret
call fcn.005b681f
push 0x80004005
call fcn.0040238e
call fcn.005b681f
push 0x80004005
call fcn.0040238e
call fcn.005b681f
push 0x80004005
call fcn.0040238e
call fcn.005b681f
push 0x80004005
call fcn.0040238e
call fcn.005b681f
push 0x80004005
call fcn.0040238e
push 0x80004005
call fcn.0040238e
push 0x80070057
call fcn.0040238e
push 0x80070057
call fcn.0040238e
push 0x80004005
call fcn.0040238e
call fcn.005b681f
int3