Function at 0x43c7e0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49df00
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x4cb06c]
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 eax, edx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x48], ecx
mov dword [ecx], 0
mov ecx, eax
mov byte [ebp - 0x39], 0
call fcn.0041a360
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 4], 0
call fcn.00403580
mov ecx, eax
test ecx, ecx
je 0x43cd46
mov eax, dword [ecx]
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x20], edi
mov dword [ebp - 4], 1
call fcn.00403580
mov ecx, eax
test ecx, ecx
je 0x43cd50
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov eax, str.SystemCurrentControlSetServices_
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1c]
test eax, 0xffff0000
jne 0x43c892
movzx eax, ax
push eax
call fcn.00410810
jmp 0x43c89e
push 0x22
push str.SystemCurrentControlSetServices_
call fcn.0041a420
mov byte [ebp - 4], 3
mov ebx, str.MBAMInstallerService
mov esi, dword [ebp - 0x1c]
sub ebx, esi
push 0x14
push str.MBAMInstallerService
sar ebx, 1
mov eax, dword [esi - 0xc]
mov dword [ebp - 0x18], eax
call fcn.004788dc
mov ecx, dword [ebp - 0x18]
mov edx, eax
mov eax, 0x7fffffff
mov dword [ebp - 0x14], edx
sub eax, edx
add esp, 8
cmp eax, ecx
jl 0x43cd5a
add edx, ecx
js 0x43cd64
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
jge 0x43c8ff
push edx
lea ecx, [ebp - 0x1c]
call fcn.004031e0
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
lea ecx, [esi + ebx*2]
cmp ebx, eax
jbe 0x43c90e
mov ecx, str.MBAMInstallerService
mov ebx, dword [ebp - 0x14]
mov edx, ebx
push ebx
push ecx
lea ecx, [esi + eax*2]
call fcn.00403720
mov eax, dword [ebp - 0x18]
add esp, 8
add eax, ebx
cmp eax, dword [esi - 8]
jg 0x43cd5a
mov dword [esi - 0xc], eax
xor ecx, ecx
mov word [esi + eax*2], cx
mov eax, str.Parameters
mov ebx, dword [esi - 0xc]
sub eax, esi
sar eax, 1
push 0xb
push str.Parameters
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x18], ebx
call fcn.004788dc
mov edx, eax
add esp, 8
mov eax, 0x7fffffff
mov dword [ebp - 0x14], edx
sub eax, edx
cmp eax, ebx
jl 0x43cd6e
add ebx, edx
js 0x43cd78
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, ebx
or eax, ecx
jge 0x43c994
push ebx
lea ecx, [ebp - 0x1c]
call fcn.004031e0
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x18]
cmp eax, ecx
lea eax, [esi + eax*2]
jbe 0x43c9a6
mov eax, str.Parameters
push edx
push eax
lea ecx, [esi + ecx*2]
call fcn.00403720
lea eax, [esi - 0x10]
add esp, 8
mov dword [ebp - 0x4c], eax
cmp ebx, dword [eax + 8]
jg 0x43cd5a
mov dword [eax + 4], ebx
xorps xmm0, xmm0
xor eax, eax
movq qword [ebp - 0x38], xmm0
mov word [esi + ebx*2], ax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
push 0x2001f
push esi
push 0x80000002
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 4
call fcn.00406270
mov esi, eax
test esi, esi
jne 0x43cbf6
mov ebx, dword [ebp - 0x38]
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x14], 4
push eax
lea eax, [ebp - 0x18]
push eax
push esi
push str.CurrentStep
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [ebp - 0x40], eax
lea ecx, [esi + 0xd]
test eax, eax
jne 0x43ca34
cmp dword [ebp - 0x18], 4
cmovne esi, ecx
mov dword [ebp - 0x40], esi
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 4
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x18]
push eax
push 0
push str.MaxStep
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x43ca6d
xor ecx, ecx
mov eax, 0xd
cmp dword [ebp - 0x18], 4
cmovne ecx, eax
mov dword [ebp - 0x14], ecx
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, 0x400
or eax, ecx
jge 0x43ca91
push 0x400
lea ecx, [ebp - 0x20]
call fcn.004031e0
mov edi, dword [ebp - 0x20]
cmp dword [edi - 8], 0x400
jl 0x43cd5a
xor eax, eax
mov dword [edi - 0xc], 0x400
mov word [edi + 0x800], ax
xor esi, esi
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0x800
push eax
push edi
lea eax, [ebp - 0x24]
push eax
push esi
push str.StepName
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x43cb10
mov eax, dword [ebp - 0x24]
cmp eax, 1
je 0x43cae3
cmp eax, 2
je 0x43cae3
lea eax, [esi + 0xd]
jmp 0x43cb10
mov ecx, dword [ebp - 0x18]
test edi, edi
je 0x43cb0a
test ecx, ecx
je 0x43cb05
test cl, 1
jne 0x43cafe
mov eax, ecx
shr eax, 1
cmp word [edi + eax*2 - 2], si
je 0x43cb0a
mov eax, 0xd
jmp 0x43cb10
xor eax, eax
mov word [edi], ax
mov esi, ecx
shr esi, 1
xor eax, eax
cmp esi, dword [edi - 8]
jg 0x43cd5a
xor ecx, ecx
mov dword [edi - 0xc], esi
mov word [edi + esi*2], cx
cmp dword [ebp - 0x40], ecx
jne 0x43cbd0
cmp dword [ebp - 0x14], ecx
jne 0x43cbd0
test eax, eax
jne 0x43cbd0
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x14]
call fcn.0043c500
mov byte [ebp - 4], 5
mov edx, dword [eax]
mov eax, dword [ebp - 0x44]
lea ecx, [edx - 0x10]
mov esi, dword [eax]
sub esi, 0x10
cmp ecx, esi
je 0x43cba8
mov eax, dword [esi + 0xc]
lea edi, [esi + 0xc]
shr eax, 0x1f
test al, al
jne 0x43cb9c
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x43cb9c
call fcn.004037b0
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 6
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x43cb8f
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x24]
add eax, 0x10
mov dword [ecx], eax
jmp 0x43cba8
push dword [edx - 0xc]
mov ecx, dword [ebp - 0x44]
push edx
call fcn.0041a420
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov byte [ebp - 4], 7
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43cbc7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x20]
mov byte [ebp - 0x39], 1
jmp 0x43cbe7
push str.Unable_to_query_installer_service_registry_settings
mov edx, 0x30b
mov ecx, str.d:jenkinsworkspace_a_mb4_mbsetup_srcmbsetupmbutils.cpp
call fcn.0043ac70
add esp, 4
test ebx, ebx
je 0x43cc64
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor ebx, ebx
jmp 0x43cc64
cmp esi, 2
je 0x43cc61
mov byte [ebp - 4], 8
call fcn.00403580
mov ecx, eax
test ecx, ecx
je 0x43cd82
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
push esi
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 9
push str.Failed_to_open_installer_service_registry_settings__0x_08X_
push eax
call fcn.00410540
mov esi, dword [ebp - 0x14]
add esp, 0xc
mov edx, 0x315
mov ecx, str.d:jenkinsworkspace_a_mb4_mbsetup_srcmbsetupmbutils.cpp
push esi
call fcn.0043ac70
add esp, 4
add esi, 0xfffffff0
mov byte [ebp - 4], 0xa
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x43cc61
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x43cccb
mov edx, dword [ebp - 0x2c]
test edx, edx
je 0x43cccb
cmp ecx, dword [0x4d0778]
jbe 0x43cc97
push edx
push 0x64
push ecx
mov dword [0x4d0778], ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [0x4d077c]
cmp eax, ecx
cmovg ecx, eax
jmp 0x43ccd7
jne 0x43ccc3
mov esi, dword [0x4d077c]
lea eax, [ecx + 1]
inc esi
cmp edx, eax
push edx
cmovb eax, edx
push 0x64
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
cmp esi, eax
jge 0x43ccc3
mov ecx, dword [0x4d077c]
cmp esi, ecx
cmovg ecx, esi
jmp 0x43ccd7
mov ecx, dword [0x4d077c]
jmp 0x43ccdd
mov ecx, dword [0x4d077c]
cmp ecx, 5
jge 0x43ccdd
inc ecx
mov dword [0x4d077c], ecx
mov eax, dword [ebp - 0x48]
mov dword [eax], ecx
test ebx, ebx
je 0x43cced
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [ebp - 0x4c]
or ebx, 0xffffffff
mov byte [ebp - 4], 0xb
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43cd0b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov dword [ebp - 4], 0xc
lock xadd dword [edi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x43cd27
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov al, byte [ebp - 0x39]
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.0045d468
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.004036f0
push 0x80004005
call fcn.004036f0
push 0x80070057
call fcn.004036f0
push 0x80070057
call fcn.004036f0
push 0x80070057
call fcn.004036f0
push 0x80070057
call fcn.004036f0
push 0x80004005
call fcn.004036f0
int3