Function at 0x100041f0
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push 0xffffffffffffffff
push 0x10028b07
mov eax, dword fs:[0]
push eax
sub esp, 0x4b0
mov eax, dword [0x1003230c]
xor eax, esp
mov dword [esp + 0x4ac], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1003230c]
xor eax, esp
push eax
lea eax, [esp + 0x4c4]
mov dword fs:[0], eax
xor edi, edi
mov ebx, 7
xor eax, eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x90], ebx
mov dword [esp + 0x8c], edi
mov word [esp + 0x7c], ax
push edi
lea ecx, [esp + 0x18]
push ecx
push edi
push 0xf003f
push edi
push edi
push edi
push str.SoftwareAPNUpdaterMacro
push 0x80000002
mov dword [esp + 0x4f0], edi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
je 0x1000428d
cmp dword [esp + 0x90], 8
jb 0x100045e7
mov edx, dword [esp + 0x7c]
push edx
jmp 0x100045df
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x1c]
push eax
push edi
lea ecx, [esp + 0x28]
push ecx
push edi
push str.apnuguid
push edx
mov dword [esp + 0x38], 1
mov dword [esp + 0x34], edi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
cmp eax, 2
jne 0x10004318
push str.No_existing_apnuguid_reg_value_found
call fcn.10001180
add esp, 4
lea ecx, [esp + 0x78]
call fcn.1000f660
test eax, eax
je 0x10004318
cmp dword [esp + 0x90], 8
mov eax, dword [esp + 0x7c]
jae 0x100042ec
lea eax, [esp + 0x7c]
mov ecx, dword [esp + 0x8c]
lea edx, [ecx + ecx]
push edx
push eax
mov eax, dword [esp + 0x1c]
push 1
push edi
push str.apnuguid
push eax
call ebp
test eax, eax
je 0x10004318
push str.RegSetValueEx_apnuguid_failed.
call fcn.10001180
add esp, 4
xor ecx, ecx
push 1
mov eax, 0x1002cb7c
lea esi, [esp + 0x60]
mov dword [esp + 0x78], ebx
mov dword [esp + 0x74], edi
mov word [esp + 0x64], cx
call fcn.10005d40
mov byte [esp + 0x4cc], 1
cmp dword [esp + 0x74], 8
mov eax, dword [esp + 0x60]
jae 0x1000434e
lea eax, [esp + 0x60]
mov edx, dword [esp + 0x70]
lea ecx, [edx + edx]
mov edx, dword [esp + 0x14]
push ecx
push eax
push 1
push edi
push str.revision
push edx
call ebp
test eax, eax
je 0x10004377
push str.RegSetValueEx_revision_failed.
call fcn.10001180
add esp, 4
xor eax, eax
mov dword [esp + 0xac], ebx
mov dword [esp + 0xa8], edi
mov word [esp + 0x98], ax
xor ecx, ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], edi
mov word [esp + 0x44], cx
xor edx, edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], edi
mov word [esp + 0x28], dx
lea eax, [esp + 0x94]
push eax
sub esp, 0x1c
mov byte [esp + 0x4ec], 4
mov esi, esp
mov dword [esp + 0x38], esp
mov dword [esi + 0x18], ebx
mov dword [esi + 0x14], edi
push 0x10
mov eax, str.CustomActionData
mov word [esi + 4], cx
call fcn.10005d40
mov ecx, dword [esp + 0x4f4]
call fcn.10006950
add esp, 0x20
cmp eax, edi
jne 0x10004456
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x44]
push eax
mov ecx, 0x1002be54
lea ebx, [esp + 0x9c]
mov dword [esp + 0x20], edi
call fcn.10004ff0
add esp, 8
test eax, eax
jne 0x10004422
push str.Tokenize_buildnum_failed.
call fcn.10001180
add esp, 4
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x28]
push edx
mov ecx, 0x1002be54
lea ebx, [esp + 0x9c]
call fcn.10004ff0
add esp, 8
test eax, eax
jne 0x10004451
push str.Tokenize_updaterPath_failed.
call fcn.10001180
add esp, 4
mov ebx, 7
mov eax, dword [esp + 0x44]
mov esi, 8
cmp dword [esp + 0x58], esi
jae 0x10004469
lea eax, [esp + 0x44]
mov ecx, dword [esp + 0x54]
lea edx, [ecx + ecx]
push edx
push eax
mov eax, dword [esp + 0x1c]
push 1
push edi
push str.build
push eax
call ebp
test eax, eax
je 0x10004492
push str.RegSetValueEx_build_failed.
call fcn.10001180
add esp, 4
cmp dword [esp + 0x38], edi
je 0x1000452b
push 0xb
mov eax, str.updater.exe
lea ecx, [esp + 0x28]
call fcn.10005c60
push 0x40e
lea edx, [esp + 0xb6]
xor ecx, ecx
push edi
push edx
mov word [esp + 0xbc], cx
call fcn.10017160
mov eax, dword [esp + 0x34]
add esp, 0xc
mov dword [esp + 0x18], 0x208
cmp dword [esp + 0x3c], esi
jae 0x100044e2
lea eax, [esp + 0x28]
push edi
push edi
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0xbc]
push edx
push eax
call sub.msi.dll_MsiMessageBoxW
test eax, eax
jne 0x1000452b
mov eax, dword [esp + 0x18]
lea ecx, [eax + eax]
mov eax, dword [esp + 0x14]
push ecx
lea edx, [esp + 0xb4]
push edx
push 1
push edi
push str.apnuversion
push eax
call ebp
test eax, eax
je 0x1000452b
push str.RegSetValueEx_version_failed.
call fcn.10001180
add esp, 4
mov eax, dword [esp + 0x14]
cmp eax, edi
je 0x1000453a
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [esp + 0x3c], esi
jb 0x1000454d
mov ecx, dword [esp + 0x28]
push ecx
call fcn.10011720
add esp, 4
xor edx, edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], edi
mov word [esp + 0x28], dx
cmp dword [esp + 0x58], esi
jb 0x1000456f
mov eax, dword [esp + 0x44]
push eax
call fcn.10011720
add esp, 4
xor ecx, ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], edi
mov word [esp + 0x44], cx
cmp dword [esp + 0xac], esi
jb 0x10004597
mov edx, dword [esp + 0x98]
push edx
call fcn.10011720
add esp, 4
xor eax, eax
mov dword [esp + 0xac], ebx
mov dword [esp + 0xa8], edi
mov word [esp + 0x98], ax
cmp dword [esp + 0x74], esi
jb 0x100045c2
mov ecx, dword [esp + 0x60]
push ecx
call fcn.10011720
add esp, 4
xor edx, edx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x70], edi
mov word [esp + 0x60], dx
cmp dword [esp + 0x90], esi
jb 0x100045e7
mov eax, dword [esp + 0x7c]
push eax
call fcn.10011720
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x4c4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x4ac]
xor ecx, esp
call fcn.1001172b
add esp, 0x4bc
ret 4