Function at 0x423610
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47ebb8
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x4b9070]
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
mov edi, ecx
call fcn.004520f0
mov esi, eax
mov ecx, esi
call fcn.00451e90
cmp byte [0x4bd53d], 0
jne 0x4236b8
mov ecx, 0xf0
call fcn.00452760
mov dword [ebp - 0x40], eax
mov dword [ebp - 4], 0
xorps xmm0, xmm0
movsd qword [ebp - 0x6c], xmm0
test eax, eax
je 0x4236a8
sub esp, 8
mov ecx, eax
movsd qword [esp], xmm0
push 0x4bd53d
sub esp, 0xc
push 0x22a
push str.C:BuildAgentwork4d643bb3f4c71f96RemoteInstallerAuxiliaryServiceAuxiliaryService.cpp
push 0x50
call fcn.00451f60
mov dword [ebp - 4], 0xffffffff
mov dword [0x4be0c8], eax
jmp 0x4236c0
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x4be0c8], eax
jmp 0x4236c0
xorps xmm0, xmm0
movsd qword [ebp - 0x6c], xmm0
mov ecx, esi
call fcn.00451ea0
mov ecx, dword [0x4be0c8]
lea ecx, [ecx + 0xd0]
call fcn.00451e90
mov ecx, dword [0x4be0c8]
push str.OnInstallMsi:_Entry
push ecx
mov eax, dword [ecx]
call dword [eax + 0x48]
mov ecx, dword [0x4be0c8]
add esp, 8
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov ecx, dword [0x4be0c8]
lea ecx, [ecx + 0xd0]
call fcn.00451ea0
cmp dword [edi + 0x54], 1
mov eax, str.Agent.msi
je 0x423716
mov eax, dword [edi + 0x58]
push eax
lea ecx, [ebp - 0x60]
call fcn.0041aef0
lea ecx, [ebp - 0x74]
mov dword [ebp - 4], 1
call fcn.00419770
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 2
push ecx
mov edx, eax
lea ecx, [ebp - 0x5c]
call fcn.00426da0
add esp, 4
mov edx, dword [ebp - 0x74]
add edx, 0xfffffff0
or ebx, 0xffffffff
mov byte [ebp - 4], 5
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423764
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 4
call fcn.00419770
push str.agent_install.log
mov edx, eax
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x58]
call fcn.0041ae10
add esp, 4
mov edx, dword [ebp - 0x78]
add edx, 0xfffffff0
mov byte [ebp - 4], 9
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4237a4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 8
call fcn.00419770
push str.fixer.log
mov edx, eax
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x54]
call fcn.0041ae10
add esp, 4
mov edx, dword [ebp - 0x7c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xd
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4237e4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xe
call fcn.004171d0
mov ecx, eax
test ecx, ecx
je 0x4245ca
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x4c]
mov byte [ebp - 4], 0xf
push eax
mov ecx, edi
call fcn.00423340
test eax, eax
sete byte [ebp - 0x40]
test eax, eax
jne 0x423906
call fcn.004520f0
mov esi, eax
mov ecx, esi
call fcn.00451e90
cmp byte [0x4bd55e], 0
jne 0x423880
mov ecx, 0xf0
call fcn.00452760
mov dword [ebp - 0x48], eax
mov byte [ebp - 4], 0x10
test eax, eax
je 0x423875
movsd xmm0, qword [ebp - 0x6c]
sub esp, 8
mov ecx, eax
movsd qword [esp], xmm0
push 0x4bd55e
sub esp, 0xc
push 0x23a
push str.C:BuildAgentwork4d643bb3f4c71f96RemoteInstallerAuxiliaryServiceAuxiliaryService.cpp
push 0x48
call fcn.00451f60
jmp 0x423877
xor eax, eax
mov byte [ebp - 4], 0xf
mov dword [0x4be178], eax
mov ecx, esi
call fcn.00451ea0
mov ecx, dword [0x4be178]
lea ecx, [ecx + 0xd0]
call fcn.00451e90
mov eax, dword [0x4be178]
lea ecx, [ebp - 0x48]
push dword [ebp - 0x4c]
mov eax, dword [eax]
mov esi, dword [eax + 0x48]
call fcn.0041ab30
mov byte [ebp - 4], 0x11
push dword [eax]
push str.Installed_product_found__s
push dword [0x4be178]
call esi
mov edx, dword [ebp - 0x48]
add esp, 0xc
add edx, 0xfffffff0
mov byte [ebp - 4], 0x12
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4238e1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xf
mov ecx, dword [0x4be178]
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov ecx, dword [0x4be178]
lea ecx, [ecx + 0xd0]
call fcn.00451ea0
jmp 0x423b1c
cmp dword [edi + 0x54], 1
jne 0x423b1c
cmp byte [edi + 0x5c], 0
jne 0x423b1c
lea ecx, [ebp - 0x48]
call fcn.0041af90
mov byte [ebp - 4], 0x13
call fcn.00419760
xor edx, edx
lea ecx, [ebp - 0x54]
test al, al
lea eax, [ebp - 0x48]
cmove ecx, edx
push ecx
push eax
call fcn.00422950
mov esi, dword [ebp - 0x48]
cmp dword [esi - 0xc], 0
lea edx, [esi - 0x10]
je 0x423b04
call fcn.004520f0
mov edi, eax
mov ecx, edi
call fcn.00451e90
cmp byte [0x4bd54a], 0
jne 0x4239b0
mov ecx, 0xf0
call fcn.00452760
mov dword [ebp - 0x40], eax
mov byte [ebp - 4], 0x14
test eax, eax
je 0x4239a5
movsd xmm0, qword [ebp - 0x6c]
sub esp, 8
mov ecx, eax
movsd qword [esp], xmm0
push 0x4bd54a
sub esp, 0xc
push 0x246
push str.C:BuildAgentwork4d643bb3f4c71f96RemoteInstallerAuxiliaryServiceAuxiliaryService.cpp
push 0x20
call fcn.00451f60
jmp 0x4239a7
xor eax, eax
mov byte [ebp - 4], 0x13
mov dword [0x4be174], eax
mov ecx, edi
call fcn.00451ea0
mov ecx, dword [0x4be174]
lea ecx, [ecx + 0xd0]
call fcn.00451e90
mov eax, dword [0x4be174]
lea ecx, [ebp - 0x40]
push esi
mov eax, dword [eax]
mov edi, dword [eax + 0x48]
call fcn.0041ab30
mov byte [ebp - 4], 0x15
push dword [eax]
push str.Run_fixer.cmd_error:__s
push dword [0x4be174]
call edi
mov edx, dword [ebp - 0x40]
add esp, 0xc
add edx, 0xfffffff0
mov byte [ebp - 4], 0x16
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423a0f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x13
mov ecx, dword [0x4be174]
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov ecx, dword [0x4be174]
lea ecx, [ecx + 0xd0]
call fcn.00451ea0
mov byte [ebp - 4], 0x17
lea edx, [esi - 0x10]
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423a4a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x4c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x18
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423a68
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x54]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x19
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423a86
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x58]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x1a
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423aa4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x5c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x1b
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423ac2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x60]
add edx, 0xfffffff0
mov dword [ebp - 4], 0x1c
lock xadd dword [edx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x423ae1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 0x643
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.0045527a
mov esp, ebp
pop ebp
ret 4
mov byte [ebp - 4], 0x1d
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423b1c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1e
call fcn.004171d0
mov ecx, eax
test ecx, ecx
je 0x4245d4
mov eax, dword [ecx]
call dword [eax + 0xc]
lea ecx, [eax + 0x10]
mov dword [ebp - 0x44], ecx
mov byte [ebp - 4], 0x1f
mov edx, 1
sub edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
sub eax, 0x104
or eax, edx
jge 0x423b62
push 0x104
lea ecx, [ebp - 0x44]
call fcn.0041b7b0
mov ecx, dword [ebp - 0x44]
push 0x104
push ecx
push dword [ebp - 0x5c]
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
neg eax
sbb esi, esi
neg esi
mov byte [ebp - 4], 0x20
mov ecx, dword [ebp - 0x44]
push dword [ecx - 8]
push ecx
call fcn.004603a0
mov edx, eax
add esp, 8
test edx, edx
js 0x4245c0
mov ecx, dword [ebp - 0x44]
cmp edx, dword [ecx - 8]
jg 0x4245c0
mov dword [ecx - 0xc], edx
xor ecx, ecx
mov eax, dword [ebp - 0x44]
mov byte [ebp - 4], 0x1f
mov word [eax + edx*2], cx
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x423bc2
movzx eax, ax
or eax, 0x80070000
test esi, esi
je 0x4245de
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov word [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov byte [ebp - 4], 0x22
lea edx, [ebp - 0x2c]
push ecx
mov ecx, dword [ebp - 0x44]
call fcn.0042d060
add esp, 4
test al, al
jne 0x423d93
cmp byte [ebp - 0x23], al
jne 0x423d93
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x1c]
jne 0x423d93
call fcn.004520f0
mov esi, eax
mov ecx, esi
call fcn.00451e90
cmp byte [0x4bd4e1], 0
jne 0x423c84
mov ecx, 0xf0
call fcn.00452760
mov dword [ebp - 0x40], eax
mov byte [ebp - 4], 0x23
test eax, eax
je 0x423c79
movsd xmm0, qword [ebp - 0x6c]
sub esp, 8
mov ecx, eax
movsd qword [esp], xmm0
push 0x4bd4e1
sub esp, 0xc
push 0x258
push str.C:BuildAgentwork4d643bb3f4c71f96RemoteInstallerAuxiliaryServiceAuxiliaryService.cpp
push 0x20
call fcn.00451f60
jmp 0x423c7b
xor eax, eax
mov byte [ebp - 4], 0x22
mov dword [0x4be228], eax
mov ecx, esi
call fcn.00451ea0
mov ecx, dword [0x4be228]
lea ecx, [ecx + 0xd0]
call fcn.00451e90
mov ecx, dword [0x4be228]
push str.Cannt_check_MSI_signature_or_file_is_broken
push ecx
mov eax, dword [ecx]
call dword [eax + 0x48]
mov ecx, dword [0x4be228]
add esp, 8
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov ecx, dword [0x4be228]
lea ecx, [ecx + 0xd0]
call fcn.00451ea0
lea ecx, [ebp - 0x20]
call fcn.00427110
mov edx, dword [ebp - 0x44]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x24
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423cf2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x4c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x25
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423d10
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x54]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x26
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423d2e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x58]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x27
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423d4c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x5c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x28
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423d6a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x60]
add edx, 0xfffffff0
mov dword [ebp - 4], 0x29
lock xadd dword [edx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x423d89
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 0xd
jmp 0x423ae6
lea ecx, [ebp - 0x20]
call fcn.00427110
mov dword [ebp - 4], 0x32
call fcn.004171d0
mov ecx, eax
test ecx, ecx
je 0x4245e4
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 0x33
push eax
push dword [ebp - 0x40]
lea eax, [ebp - 0x58]
mov ecx, edi
push dword [ebp + 8]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.00423470
test al, al
jne 0x423ea7
mov edx, dword [ebp - 0x48]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x34
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423dff
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x44]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x35
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423e1d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x4c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x36
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423e3b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x54]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x37
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423e59
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x58]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x38
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423e77
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x5c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x39
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423e95
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x60]
add edx, 0xfffffff0
mov dword [ebp - 4], 0x3a
jmp 0x423d77
cmp dword [edi + 0x54], 1
jne 0x424074
cmp byte [edi + 0x5c], 0
jne 0x424074
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x3c], vtable.std::_Func_impl_no_alloc_class__lambda_5e599d9188817d71e7449ac88588eadf___void__char_const__.0
mov dword [ebp - 0x18], eax
mov ecx, eax
mov byte [ebp - 4], 0x3b
call fcn.00447cf0
test al, al
sete al
mov byte [ebp - 0x4d], al
mov byte [ebp - 4], 0x3c
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x423ef9
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
lea eax, [ebp - 0x3c]
cmp ecx, eax
setne al
push eax
call edx
mov al, byte [ebp - 0x4d]
mov byte [ebp - 4], 0x33
test al, al
je 0x424074
call fcn.004520f0
mov esi, eax
mov ecx, esi
call fcn.00451e90
cmp byte [0x4bd53e], 0
jne 0x423f66
mov ecx, 0xf0
call fcn.00452760
mov dword [ebp - 0x40], eax
mov byte [ebp - 4], 0x3d
test eax, eax
je 0x423f5b
movsd xmm0, qword [ebp - 0x6c]
sub esp, 8
mov ecx, eax
movsd qword [esp], xmm0
push 0x4bd53e
sub esp, 0xc
push 0x26f
push str.C:BuildAgentwork4d643bb3f4c71f96RemoteInstallerAuxiliaryServiceAuxiliaryService.cpp
push 0x20
call fcn.00451f60
jmp 0x423f5d
xor eax, eax
mov byte [ebp - 4], 0x33
mov dword [0x4be130], eax
mov ecx, esi
call fcn.00451ea0
mov ecx, dword [0x4be130]
lea ecx, [ecx + 0xd0]
call fcn.00451e90
mov ecx, dword [0x4be130]
push str.Failed_to_remove_delayed_installation
push ecx
mov eax, dword [ecx]
call dword [eax + 0x48]
mov ecx, dword [0x4be130]
add esp, 8
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov ecx, dword [0x4be130]
lea ecx, [ecx + 0xd0]
call fcn.00451ea0
mov edx, dword [ebp - 0x48]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x3e
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423fcc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x44]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x3f
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423fea
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x4c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x40
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x424008
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x54]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x41
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x424026
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x58]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x42
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x424044
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x5c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x43
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x424062
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x60]
add edx, 0xfffffff0
mov dword [ebp - 4], 0x44
jmp 0x423acf
call fcn.004520f0
mov esi, eax
mov ecx, esi
call fcn.00451e90
cmp byte [0x4bd551], 0
jne 0x4240d5
mov ecx, 0xf0
call fcn.00452760
mov dword [ebp - 0x40], eax
mov byte [ebp - 4], 0x45
test eax, eax
je 0x4240ca
movsd xmm0, qword [ebp - 0x6c]
sub esp, 8
mov ecx, eax
movsd qword [esp], xmm0
push 0x4bd551
sub esp, 0xc
push 0x274
push str.C:BuildAgentwork4d643bb3f4c71f96RemoteInstallerAuxiliaryServiceAuxiliaryService.cpp
push 0x48
call fcn.00451f60
jmp 0x4240cc
xor eax, eax
mov byte [ebp - 4], 0x33
mov dword [0x4be23c], eax
mov ecx, esi
call fcn.00451ea0
mov ecx, dword [0x4be23c]
lea ecx, [ecx + 0xd0]
call fcn.00451e90
mov eax, dword [0x4be23c]
lea ecx, [ebp - 0x40]
mov esi, dword [ebp - 0x48]
push esi
mov eax, dword [eax]
mov edi, dword [eax + 0x48]
call fcn.0041ab30
mov byte [ebp - 4], 0x46
push dword [eax]
push str.Starting_msiexec__command_line___s_...
push dword [0x4be23c]
call edi
mov edx, dword [ebp - 0x40]
add esp, 0xc
add edx, 0xfffffff0
mov byte [ebp - 4], 0x47
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x424137
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x33
mov ecx, dword [0x4be23c]
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov ecx, dword [0x4be23c]
lea ecx, [ecx + 0xd0]
call fcn.00451ea0
push str.msiexec.exe
lea ecx, [ebp - 0x70]
call fcn.0041aef0
push str.CAuxiliaryService::OnInstallMsi
mov byte [ebp - 4], 0x48
lea eax, [ebp - 0x2c]
push 0x3a980
push eax
push ecx
lea eax, [esi - 0x10]
mov dword [ebp - 0x2c], 0
mov edi, esp
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x40], edi
mov ecx, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x80], esp
mov dword [ebp - 0x40], eax
call fcn.0041b750
add eax, 0x10
mov dword [edi], eax
push ecx
mov byte [ebp - 4], 0x49
mov esi, esp
mov dword [ebp - 0x64], esi
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.0041b750
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x48
call fcn.00425f60
mov edi, eax
mov ecx, edi
call fcn.00448110
test al, al
je 0x424293
call fcn.004520f0
mov esi, eax
mov ecx, esi
call fcn.00451e90
cmp byte [0x4bd563], 0
jne 0x424250
mov ecx, 0xf0
call fcn.00452760
mov dword [ebp - 0x64], eax
mov byte [ebp - 4], 0x4a
test eax, eax
je 0x424245
movsd xmm0, qword [ebp - 0x6c]
sub esp, 8
mov ecx, eax
movsd qword [esp], xmm0
push 0x4bd563
sub esp, 0xc
push 0x27c
push str.C:BuildAgentwork4d643bb3f4c71f96RemoteInstallerAuxiliaryServiceAuxiliaryService.cpp
push 0x50
call fcn.00451f60
jmp 0x424247
xor eax, eax
mov byte [ebp - 4], 0x48
mov dword [0x4be118], eax
mov ecx, esi
call fcn.00451ea0
mov ecx, dword [0x4be118]
lea ecx, [ecx + 0xd0]
call fcn.00451e90
mov ecx, dword [0x4be118]
push edi
push str.OnInstallMsi:_msiexec_succeeded_with_code__lu
push ecx
mov eax, dword [ecx]
call dword [eax + 0x48]
mov ecx, dword [0x4be118]
add esp, 0xc
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov ecx, dword [0x4be118]
jmp 0x424332
call fcn.004520f0
mov esi, eax
mov ecx, esi
call fcn.00451e90
cmp byte [0x4bd558], 0
jne 0x4242f4
mov ecx, 0xf0
call fcn.00452760
mov dword [ebp - 0x64], eax
mov byte [ebp - 4], 0x4b
test eax, eax
je 0x4242e9
movsd xmm0, qword [ebp - 0x6c]
sub esp, 8
mov ecx, eax
movsd qword [esp], xmm0
push 0x4bd558
sub esp, 0xc
push 0x280
push str.C:BuildAgentwork4d643bb3f4c71f96RemoteInstallerAuxiliaryServiceAuxiliaryService.cpp
push 0x20
call fcn.00451f60
jmp 0x4242eb
xor eax, eax
mov byte [ebp - 4], 0x48
mov dword [0x4be114], eax
mov ecx, esi
call fcn.00451ea0
mov ecx, dword [0x4be114]
lea ecx, [ecx + 0xd0]
call fcn.00451e90
mov ecx, dword [0x4be114]
push edi
push str.OnInstallMsi:_msiexec_failed_with_code__lu
push ecx
mov eax, dword [ecx]
call dword [eax + 0x48]
mov ecx, dword [0x4be114]
add esp, 0xc
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov ecx, dword [0x4be114]
lea ecx, [ecx + 0xd0]
call fcn.00451ea0
mov edx, dword [ebp - 0x70]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x4c
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42435b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x4d
mov eax, ebx
mov edx, dword [ebp - 0x40]
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x424376
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x44]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x4e
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x424394
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x4c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x4f
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4243b2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x54]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x50
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4243d0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x58]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x51
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4243ee
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x5c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x52
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42440c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x60]
add eax, 0xfffffff0
mov dword [ebp - 4], 0x53
lock xadd dword [eax + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x42442b
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, edi
jmp 0x423ae6
push 0x80070057
call fcn.00416dd0
push 0x80004005
call fcn.00416dd0
push 0x80004005
call fcn.00416dd0
push eax
call fcn.00416dd0
push 0x80004005
call fcn.00416dd0
int3