Function at 0x43bdc0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cb987
mov eax, dword fs:[0]
push eax
sub esp, 0xf2c
mov eax, dword [0x524ee0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
mov dword [ebp - 0xf34], ebx
mov dword [ebp - 0xf24], ebx
mov dword [ebp - 0xf38], 0
mov dword [ebp - 0xf30], 0
mov dword [ebp - 0xf2c], 0
mov dword [ebp - 0xf28], 0
push 1
push str.SOFTWAREMicrosoftWindowsCurrentVersionApp_Pathschrome.exe
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0xf30]
mov dword [ebp - 4], 0
call fcn.0040bf00
test eax, eax
je 0x43c13b
lea eax, [ebp - 0xf1c]
push eax
call fcn.00435100
add esp, 4
mov edx, dword [0x526340]
mov byte [ebp - 4], 1
lea ecx, [edx + 1]
lea eax, [edx + 2]
imul eax, ecx
imul eax, edx
cdq
mov ecx, 0xe
idiv ecx
cmp edx, 2
jne 0x43bee8
xor esi, esi
nop
call fcn.004a96f9
movd xmm0, eax
cvtdq2pd xmm0, xmm0
inc esi
movsd qword [ebp + esi*8 - 0xf20], xmm0
cmp esi, 0xe1
jb 0x43be80
xor ecx, ecx
mov eax, 0xe0
cmp ecx, eax
jge 0x43bedf
lea ebx, [ebx]
movsd xmm0, qword [ebp + eax*8 - 0xf18]
movsd xmm1, qword [ebp + eax*8 - 0xf20]
comisd xmm0, xmm1
jbe 0x43beda
movsd qword [ebp + eax*8 - 0xf18], xmm1
movsd qword [ebp + eax*8 - 0xf20], xmm0
dec eax
cmp eax, ecx
jg 0x43beb0
inc ecx
cmp ecx, 0xe1
jl 0x43bea1
mov eax, dword [ebp - 0xf1c]
or esi, 0xffffffff
mov ecx, dword [eax - 0xc]
test ecx, ecx
je 0x43c0b1
lea edx, [ecx - 1]
test edx, edx
js 0x43c0f0
cmp edx, ecx
jg 0x43c0f0
cmp word [eax + edx*2], 0x5c
je 0x43bf28
push 1
push 0x4dfbc0
lea ecx, [ebp - 0xf1c]
call fcn.0040b920
push str.GoogleChromeApplicationchrome.exe
lea eax, [ebp - 0xf1c]
push eax
lea eax, [ebp - 0xf20]
push eax
call fcn.0040b6c0
lea eax, [ebp - 0xf20]
push eax
mov byte [ebp - 4], 2
call fcn.00434680
add esp, 0x10
test al, al
je 0x43c08e
call fcn.0043f9e0
test al, al
jne 0x43bfc8
xor esi, esi
call fcn.004a96f9
movd xmm0, eax
cvtdq2pd xmm0, xmm0
inc esi
movsd qword [ebp + esi*8 - 0xcf8], xmm0
cmp esi, 0x9c
jb 0x43bf66
xor ecx, ecx
mov eax, 0x9b
cmp ecx, eax
jge 0x43bfbf
movsd xmm0, qword [ebp + eax*8 - 0xcf0]
movsd xmm1, qword [ebp + eax*8 - 0xcf8]
comisd xmm0, xmm1
jbe 0x43bfba
movsd qword [ebp + eax*8 - 0xcf0], xmm1
movsd qword [ebp + eax*8 - 0xcf8], xmm0
dec eax
cmp eax, ecx
jg 0x43bf90
inc ecx
cmp ecx, 0x9c
jl 0x43bf87
mov esi, dword [ebp - 0xf20]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi - 4], 0
lea edx, [esi - 4]
mov ecx, eax
jl 0x43bff4
cmp ecx, dword [esi - 0x10]
jne 0x43bff4
lea edi, [esi - 0x10]
mov eax, 1
lock xadd dword [edx], eax
jmp 0x43c02e
mov eax, dword [ecx]
push 2
push dword [esi - 0xc]
call dword [eax]
mov edi, eax
test edi, edi
jne 0x43c008
call fcn.00409970
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov ecx, dword [esi - 0xc]
lea eax, [ecx*2 + 2]
push eax
lea eax, [ecx*2 + 2]
push esi
push eax
lea eax, [edi + 0x10]
push eax
call fcn.004a98f5
add esp, 0x10
mov edx, dword [ebp - 0xf20]
lea eax, [edi + 0x10]
add edx, 0xfffffff0
or esi, 0xffffffff
mov dword [ebx], eax
mov byte [ebp - 4], 1
lea ecx, [edx + 0xc]
mov eax, esi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x43c059
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf1c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
lock xadd dword [eax], esi
dec esi
test esi, esi
jg 0x43c07a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xf30]
test ecx, ecx
je 0x43c37b
push ecx
jmp 0x43c375
mov edx, dword [ebp - 0xf20]
add edx, 0xfffffff0
mov byte [ebp - 4], 1
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43c0b1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x524ab0]
mov ecx, 0x524ab0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
mov eax, 0x4df410
mov byte [ebp - 4], 3
push 0
test eax, 0xffff0000
jne 0x43c0fa
movzx edi, ax
push edi
call fcn.00403b10
add esp, 8
test eax, eax
je 0x43c106
push edi
push eax
mov ecx, ebx
call fcn.004074c0
jmp 0x43c106
push 0x80070057
call fcn.00404410
push 0x4df410
mov ecx, ebx
call fcn.00409670
mov edx, dword [ebp - 0xf1c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
lock xadd dword [eax], esi
dec esi
test esi, esi
jg 0x43c127
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0xf30]
test eax, eax
je 0x43c37b
push eax
jmp 0x43c375
xor eax, eax
push 0x7fe
push eax
mov word [ebp - 0x810], ax
lea eax, [ebp - 0x80e]
push eax
call fcn.004a9c90
mov eax, dword [0x526340]
imul eax, eax
add esp, 0xc
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x43c16d
dec eax
or eax, 0xfffffff8
inc eax
cmp eax, 6
jne 0x43c1d8
xor esi, esi
call fcn.004a96f9
movd xmm0, eax
cvtdq2pd xmm0, xmm0
inc esi
movsd qword [ebp + esi*8 - 0xe18], xmm0
cmp esi, 0xc0
jb 0x43c174
xor ecx, ecx
mov eax, 0xbf
cmp ecx, eax
jge 0x43c1cf
mov edi, edi
movsd xmm0, qword [ebp + eax*8 - 0xe10]
movsd xmm1, qword [ebp + eax*8 - 0xe18]
comisd xmm0, xmm1
jbe 0x43c1ca
movsd qword [ebp + eax*8 - 0xe10], xmm1
movsd qword [ebp + eax*8 - 0xe18], xmm0
dec eax
cmp eax, ecx
jg 0x43c1a0
inc ecx
cmp ecx, 0xc0
jl 0x43c195
mov eax, dword [0x524ab0]
mov ecx, 0x524ab0
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0xf1c], esi
mov edi, dword [ebp - 0xf30]
lea eax, [ebp - 0xf20]
push eax
lea eax, [ebp - 0x810]
push eax
lea eax, [ebp - 0xf24]
push eax
push 0
push 0x4df410
push edi
mov byte [ebp - 4], 4
mov dword [ebp - 0xf20], 0x800
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ebx, eax
test ebx, ebx
jne 0x43c26f
mov eax, dword [ebp - 0xf24]
cmp eax, 1
je 0x43c242
cmp eax, 2
je 0x43c242
mov ebx, 0xd
jmp 0x43c26f
mov eax, dword [ebp - 0xf20]
test eax, eax
je 0x43c264
test al, 1
jne 0x43c25d
shr eax, 1
cmp word [ebp + eax*2 - 0x812], 0
je 0x43c26d
mov ebx, 0xd
jmp 0x43c26f
xor eax, eax
mov word [ebp - 0x810], ax
xor ebx, ebx
call fcn.0040a810
mov ecx, 1
test al, al
jne 0x43c28c
mov eax, dword [0x526340]
test eax, eax
cmove eax, ecx
mov dword [0x526340], eax
test ebx, ebx
jne 0x43c2c8
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43c2a0
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0xf1c]
call fcn.00409670
mov esi, dword [ebp - 0xf1c]
test edi, edi
je 0x43c2db
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor edi, edi
mov dword [ebp - 0xf30], edi
mov ecx, dword [esi - 0x10]
add esi, 0xfffffff0
mov eax, dword [ecx]
mov dword [ebp - 0xf2c], 0
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x43c30d
cmp ecx, dword [esi]
jne 0x43c30d
mov ebx, esi
mov eax, 1
lock xadd dword [edx], eax
inc eax
jmp 0x43c34a
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x43c321
call fcn.00409970
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov ecx, dword [esi + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebx + 0x10]
push eax
call fcn.004a98f5
add esp, 0x10
lea eax, [ebx + 0x10]
mov ebx, dword [ebp - 0xf34]
mov byte [ebp - 4], 0
mov dword [ebx], eax
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43c370
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
test edi, edi
je 0x43c37b
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a8b24
mov esp, ebp
pop ebp
ret