Function at 0x446e10
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5f62e3
mov eax, dword fs:[0]
push eax
sub esp, 0x8c
push ebx
push esi
push edi
mov eax, dword [0x6b7e40]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x50], ecx
mov dword [ebp - 4], 0
or ebx, 0xffffffff
cmp dword [ebp + 0xc], 0
jne 0x446e57
mov byte [ebp - 0xd], 0
jmp 0x447609
call fcn.004364e0
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.0041c5c0
mov byte [ebp - 4], 1
call fcn.004a4516
mov ecx, eax
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x446e86
push 0x80004005
call fcn.00402040
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x3c], eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call fcn.00419000
mov ecx, eax
mov byte [ebp - 4], 3
call fcn.00419220
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
movzx edi, ax
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x446ecb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push edi
lea eax, [ebp - 0x3c]
push 0x641d0c
push eax
call fcn.00404520
add esp, 0xc
lea ecx, [ebp - 0x34]
call fcn.0043f750
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 4
call fcn.00434ff0
push str.GetSourceInfo.aspx
push eax
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 5
call fcn.004067b0
add esp, 0xc
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x48]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x446f27
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.004a4516
mov ecx, eax
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x446f43
push 0x80004005
call fcn.00402040
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 8
push dword [ebp - 0x34]
mov edi, dword [ebp - 0x3c]
push edi
push dword [ebp - 0x44]
lea eax, [ebp - 0x20]
push esi
push dword [ebp + 8]
push str._Release_sdebug_dosa_slid_sapp_s
push eax
call fcn.00404520
add esp, 0x1c
lea ecx, [ebp - 0x20]
push 0x6463b8
push 0x63c0a0
call fcn.00411ec0
lea eax, [ebp - 0x1c]
push eax
push 0x20019
push 0
push str.SoftwareSolidWorksIM
push SysReAllocStringLen
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x4c], 4
mov dword [ebp - 0x14], 0x400
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x447094
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x4c]
push eax
push 0
push str.DummyNVA
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x1c]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
jne 0x447094
cmp dword [ebp - 0x30], 1
jb 0x447094
call fcn.004a4516
mov ecx, eax
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x447010
push 0x80004005
call fcn.00402040
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0xd
push dword [ebp - 0x30]
lea eax, [ebp - 0x18]
push str.dummy_d
push eax
call fcn.00404520
add esp, 0xc
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.004066f0
add esp, 0xc
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0xe
call fcn.00404570
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447074
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447094
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.004066f0
add esp, 0xc
lea eax, [ebp - 0x40]
push eax
mov ecx, 0x6c1f28
mov byte [ebp - 4], 0xf
call fcn.00402500
push 0
mov dl, 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x10
call fcn.0041a520
add esp, 4
call fcn.004a4516
mov ecx, eax
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x4470e9
push 0x80004005
call fcn.00402040
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x11
push dword [ebp + 8]
mov esi, dword [ebp - 0x40]
push esi
lea eax, [ebp - 0x1c]
push str._sGetSourceInfo__s.xml
push eax
call fcn.00404520
add esp, 0x10
lea ecx, [ebp - 0x28]
push 0x63bfdc
call fcn.004021e0
push ecx
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x1c]
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x12
call fcn.0040a940
add esp, 8
mov byte [ebp - 0xd], al
test al, al
je 0x447478
push str.Source_Info
lea ecx, [ebp - 0x18]
call fcn.004021e0
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x13
call fcn.00455da0
mov byte [ebp - 4], 0x14
push dword [ebp + 0x14]
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x70]
call fcn.00456010
test al, al
jne 0x447228
call fcn.004a4516
mov ecx, eax
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x44718f
push 0x80004005
call fcn.00402040
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 0xc], eax
push 0
mov edx, 0x1f9
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x15
call fcn.00419a90
add esp, 4
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp + 0x14]
push dword [ecx]
push dword [ebp - 0x18]
push dword [eax]
lea eax, [ebp + 0xc]
push eax
call fcn.00404520
mov byte [ebp - 4], 0x15
mov edx, dword [ebp + 0x10]
add edx, 0xfffffff0
add esp, 0x10
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4471ea
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
push 0x63bfdc
call fcn.004021e0
push 0x1f9
lea eax, [ebp + 0xc]
push eax
push 0xe6
push str.C:_amintegration_tools_setupishield_sldim_sldbgdwldBgDwldXML.cpp
push 1
push 1
xor ecx, ecx
call fcn.004051a0
mov ecx, eax
call fcn.004022e0
mov byte [ebp - 4], 0x14
mov edx, dword [ebp + 0xc]
jmp 0x447398
push str.Source
lea ecx, [ebp - 0x24]
call fcn.004021e0
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x17
call fcn.00456550
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov dword [ebp - 0x14], eax
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447268
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x14], 0
jne 0x4473e6
lea ecx, [ebp + 0x14]
call fcn.00404540
push str.Source
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x18
call fcn.004021e0
mov ebx, eax
push str.Root_node_not_found:
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x19
call fcn.004021e0
push ebx
push eax
lea eax, [ebp + 0x10]
push eax
mov byte [ebp - 4], 0x1a
call fcn.004066f0
add esp, 0xc
mov ebx, eax
push 0
mov edx, 0x1f8
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0x1b
call fcn.00419a90
add esp, 4
mov byte [ebp - 4], 0x1c
push dword [ebx]
push dword [eax]
lea eax, [ebp + 0x14]
push eax
call fcn.00404520
mov byte [ebp - 4], 0x1b
mov edx, dword [ebp + 0xc]
add edx, 0xfffffff0
or ebx, 0xffffffff
add esp, 0xc
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4472ff
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1a
mov edx, dword [ebp + 0x10]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44731f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x19
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44733f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x18
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44735f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
push 0x63bfdc
call fcn.004021e0
push 0x1f8
lea eax, [ebp + 0x14]
push eax
push 0xf1
push str.C:_amintegration_tools_setupishield_sldim_sldbgdwldBgDwldXML.cpp
push 1
push 1
xor ecx, ecx
call fcn.004051a0
mov ecx, eax
call fcn.004022e0
mov byte [ebp - 4], 0x14
mov edx, dword [ebp + 0x14]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4473b1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x13
call fcn.00455ee0
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4473dd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 0xd], 0
jmp 0x4474ef
mov eax, dword [ebp + 8]
push ecx
add eax, 0xfffffff0
mov ebx, esp
push eax
call fcn.004046f0
add eax, 0x10
add esp, 4
lea ecx, [ebp - 0x98]
mov dword [ebx], eax
call fcn.004466a0
mov ecx, dword [ebp - 0x50]
mov byte [ebp - 4], 0x1d
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp - 0x14]
call fcn.004489b0
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x78]
add edx, 0xfffffff0
or ebx, 0xffffffff
mov byte [ebp - 0xd], al
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447446
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x13
call fcn.00455ee0
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4474ef
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4474ef
push 0
mov edx, 0x2842
lea ecx, [ebp + 0xc]
call fcn.00419a90
add esp, 4
mov byte [ebp - 4], 0x1e
push dword [ebp - 0x2c]
push dword [eax]
push dword [ebp + 0x14]
call fcn.00404520
mov byte [ebp - 4], 0x12
mov edx, dword [ebp + 0xc]
add edx, 0xfffffff0
add esp, 0xc
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4474be
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
push 0x63bfdc
call fcn.004021e0
push 0x2842
push dword [ebp + 0x14]
xor ecx, ecx
push 0xfd
push str.C:_amintegration_tools_setupishield_sldim_sldbgdwldBgDwldXML.cpp
push 1
push 1
call fcn.004051a0
mov ecx, eax
call fcn.004022e0
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44750f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44752f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 0xf
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44754c
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x38]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44756c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44758c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4475ac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x34]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4475cc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov byte [ebp - 4], 1
lea eax, [edi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4475e9
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x44]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447609
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp + 8]
add esi, 0xfffffff0
lea eax, [esi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x44762a
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov al, byte [ebp - 0xd]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10