Function at 0x45b850
Capabilities:
Print debug messages

Disassembly:
push 0xffffffffffffffff
push 0x4f3cd0
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push ebp
push esi
push edi
mov eax, dword [0x536ed4]
xor eax, esp
push eax
lea eax, [esp + 0x3c]
mov dword fs:[0], eax
call fcn.004bb047
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x45b891
push 0x80004005
call fcn.00401730
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x44], 0
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + 0x10]
add eax, 0x90
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.00401850
lea edi, [eax + 0x10]
add esp, 4
mov dword [esp + 0x20], edi
mov ecx, 1
mov byte [esp + 0x44], cl
mov eax, dword [edi - 0xc]
lea ebx, [ecx + 0x10]
cmp eax, ebx
jge 0x45b8e3
test eax, eax
mov ebx, eax
jle 0x45b927
mov esi, eax
sub esi, ebx
cmp dword [edi - 4], ecx
jle 0x45b8fc
mov edx, eax
push edx
lea ecx, [esp + 0x24]
call fcn.00401a30
mov edi, dword [esp + 0x20]
lea eax, [esi + esi + 2]
push eax
lea ecx, [edi + ebx*2]
push ecx
push eax
push edi
call fcn.004cf02d
push eax
call fcn.004018f0
add esp, 0x14
test esi, esi
jl 0x45b959
cmp esi, dword [edi - 8]
jg 0x45b959
mov dword [edi - 0xc], esi
mov word [edi + esi*2], 0
push edi
push str.SOFTWARESRS_LabsAPO
lea edx, [esp + 0x20]
push 0x500d14
push edx
call fcn.00401af0
add esp, 0x10
call fcn.004bb047
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x45b963
push 0x80004005
call fcn.00401730
push 0x80070057
call fcn.00401730
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov esi, 0x50b9e8
lea ebx, [esp + 0x4c]
mov byte [esp + 0x44], 2
call fcn.0048cdf0
mov byte [esp + 0x44], 3
mov ecx, dword [eax]
mov edx, dword [esp + 0x18]
push ecx
push edx
lea eax, [esp + 0x1c]
push 0x500d14
push eax
call fcn.00401af0
mov byte [esp + 0x54], 2
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
add esp, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45b9ca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x14]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea ecx, [esp + 0x4c]
push ecx
push 0x20019
xor esi, esi
push esi
push edx
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x60], esi
call ebx
test eax, eax
jne 0x45b9f5
mov esi, dword [esp + 0x4c]
xor ecx, ecx
test eax, eax
sete cl
test esi, esi
mov ebp, ecx
je 0x45ba09
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
cmp ebp, eax
je 0x45ba69
mov byte [esp + 0x44], 1
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45ba34
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [esp + 0x44], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45ba55
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x44], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
jmp 0x45bd51
mov dword [esp + 0x4c], eax
lea ecx, [esp + 0x1c]
push ecx
push 0x2001f
mov byte [esp + 0x4c], 4
mov ebp, dword [esp + 0x20]
push eax
push ebp
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x30], eax
call ebx
mov esi, eax
test esi, esi
jne 0x45bae6
mov edx, dword [esp + 0x1c]
push ecx
lea eax, [ebp - 0x10]
mov dword [esp + 0x34], esp
mov esi, esp
push eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x38], eax
call fcn.00401850
add esp, 4
add eax, 0x10
push 0x50b9e8
lea edi, [esp + 0x54]
mov dword [esi], eax
call fcn.0048d6e0
add esp, 8
call fcn.004bb047
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x45bba2
push 0x80004005
call fcn.00401730
call fcn.004bb047
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x45bb00
push 0x80004005
call fcn.00401730
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
push esi
lea ecx, [esp + 0x28]
push str._RTK__CDtsHPSetting::InitPKEYforASUSDTSAPO3_reg.Open___:__d_r_n
push ecx
mov byte [esp + 0x50], 5
call fcn.00401af0
mov esi, dword [esp + 0x30]
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea eax, [esi - 0x10]
mov byte [esp + 0x44], 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45bb54
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x44], 1
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45bb79
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [esp + 0x44], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45bb9a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x10]
jmp 0x45bd49
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x2c]
mov bl, 6
push ecx
mov byte [esp + 0x48], bl
call fcn.0044e2e0
mov byte [esp + 0x48], 7
mov edx, dword [eax]
push edx
lea eax, [esp + 0x2c]
push str._sSRS_LabsAPO
push eax
call fcn.00401af0
mov byte [esp + 0x54], bl
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
add esp, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45bc00
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebp, dword [esp + 0x24]
push ecx
add ebp, 0xfffffff0
mov dword [esp + 0x38], esp
mov esi, esp
push ebp
call fcn.00401850
add esp, 4
add eax, 0x10
push 0x50b9fc
lea edi, [esp + 0x54]
mov dword [esi], eax
call fcn.0048d6e0
add esp, 4
mov esi, 0x50ba10
mov ebx, esp
mov dword [esp + 0x38], esp
call fcn.0048cdf0
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push str.SoftwareDTSDTSApoGuiAsus
mov byte [esp + 0x50], 8
call fcn.00401b10
lea ebx, [esp + 0x30]
mov byte [esp + 0x4c], 6
call fcn.0048d210
mov byte [esp + 0x4c], 9
mov eax, dword [esp + 0x30]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x3c], esp
mov esi, esp
push eax
call fcn.00401850
add esp, 4
add eax, 0x10
push 0x50ba10
mov dword [esi], eax
call fcn.0048d6e0
mov eax, dword [esp + 0x24]
add esp, 8
test eax, eax
je 0x45bca8
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor esi, esi
mov dword [esp + 0x4c], esi
jmp 0x45bcac
mov esi, dword [esp + 0x4c]
mov byte [esp + 0x44], 6
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45bcd1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x44], 4
lea ecx, [ebp + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45bcf0
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebp
call edx
test esi, esi
je 0x45bcfb
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [esp + 0x44], 1
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45bd20
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x44], 0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45bd45
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x44], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45bd6a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x3c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 4