Function at 0x10003a20
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1000d4c0
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
push ebx
push esi
push edi
mov eax, dword [0x10011018]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 4], 0
mov eax, dword [0x10011034]
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 1
call fcn.100028c0
test al, al
jne 0x10003aa8
lea eax, [ebp - 0x74]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov ax, word [ebp - 0x74]
cmp ax, 6
je 0x10003aa8
cmp ax, 9
je 0x10003aa8
push str.SOFTWAREAutodeskInstallerSharedComponents
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push str.SOFTWAREAutodeskInstallerSharedComponents
jmp 0x10003ab8
push str.SOFTWAREWow6432NodeAutodeskInstallerSharedComponents
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push str.SOFTWAREWow6432NodeAutodeskInstallerSharedComponents
push eax
lea ecx, [ebp - 0x18]
call fcn.10002100
mov eax, dword [ebp - 0x50]
mov edi, dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete___void__]
test eax, eax
je 0x10003ae0
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
neg eax
sbb eax, eax
inc eax
je 0x10003f06
lea eax, [ebp - 0x50]
push eax
push 0x20119
push 0
push dword [ebp - 0x18]
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
neg eax
sbb eax, eax
inc eax
je 0x10003f06
mov eax, dword [0x10011034]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
push ecx
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 3
call fcn.10004e10
mov edi, dword [0x10011034]
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x20], edi
mov ebx, edi
mov dword [ebp - 0x1c], ebx
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 7
call fcn.100093e0
mov esi, dword [ebp - 0x10]
cmp eax, 0x103
je 0x10003dd9
jmp 0x10003b70
push ecx
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x28]
call fcn.10004ca0
lea ecx, [ebp - 0x14]
push ecx
mov edx, eax
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 8
call fcn.10004d60
mov ebx, eax
mov byte [ebp - 4], 9
mov edx, dword [ebx]
mov dword [ebp - 0x34], edx
cmp esi, edx
je 0x10003c4f
mov ecx, dword [esi - 0xc]
lea edi, [esi - 0xc]
test ecx, ecx
jns 0x10003bb5
lea eax, [esi - 0xc]
cmp eax, 0x10011024
jne 0x10003bbb
cmp dword [edx - 0xc], 0
jge 0x10003c1e
mov ebx, dword [edx - 8]
cmp ecx, 1
jg 0x10003bc8
cmp ebx, dword [esi - 4]
jle 0x10003c05
add esi, 0xfffffff4
cmp esi, 0x10011024
je 0x10003bf2
mov eax, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
push edi
call eax
test eax, eax
jg 0x10003bea
mov eax, dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete___void__]
push edi
call eax
add esp, 4
mov eax, dword [0x10011034]
mov dword [ebp - 0x10], eax
push ebx
lea ecx, [ebp - 0x10]
call fcn.10002040
mov esi, dword [ebp - 0x10]
test eax, eax
je 0x10003c4f
mov edx, dword [ebp - 0x34]
lea edi, [ebx + ebx]
push edi
push edx
push esi
call sub.MSVCR110.dll_memcpy
add esp, 0xc
xor eax, eax
mov dword [esi - 8], ebx
mov word [edi + esi], ax
jmp 0x10003c4f
add esi, 0xfffffff4
cmp esi, 0x10011024
je 0x10003c40
mov eax, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
push edi
call eax
test eax, eax
jg 0x10003c40
mov eax, dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete___void__]
push edi
call eax
add esp, 4
mov esi, dword [ebx]
mov dword [ebp - 0x10], esi
lea eax, [esi - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [ebp - 0x24]
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
lea ecx, [eax - 0xc]
cmp ecx, 0x10011024
je 0x10003c81
add eax, 0xfffffff4
push eax
call edi
mov ebx, dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete___void__]
test eax, eax
jg 0x10003c87
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff4
push eax
call ebx
add esp, 4
jmp 0x10003c87
mov ebx, dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete___void__]
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x28]
lea ecx, [eax - 0xc]
cmp ecx, 0x10011024
je 0x10003caf
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x10003caf
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff4
push eax
call ebx
add esp, 4
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x10003cc8
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
neg eax
sbb eax, eax
inc eax
je 0x10003dbc
lea eax, [ebp - 0x44]
push eax
push 0x20119
push 0
push esi
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
neg eax
sbb eax, eax
inc eax
je 0x10003dbc
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x30]
push eax
push dword [ebp + 0xc]
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
call fcn.10009610
test eax, eax
je 0x10003da1
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x44]
xor edi, edi
call fcn.100094b0
cmp eax, 0x103
je 0x10003d51
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x44]
inc edi
call fcn.100094b0
cmp eax, 0x103
jne 0x10003d30
cmp edi, 2
jge 0x10003da1
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x14]
push eax
call fcn.100022d0
mov edi, dword [ebp - 0x14]
push ecx
cmp dword [edi - 0xc], 0
lea eax, [edi - 0xc]
mov ebx, esp
jl 0x10003d77
push eax
mov dword [ebx], edi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x10003d8e
mov eax, dword [0x10011034]
push edi
mov dword [ebx], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push edi
push eax
mov ecx, ebx
call fcn.10002100
mov ebx, dword [ebp + 8]
push ebx
call fcn.10003660
mov ecx, dword [ebp - 0x38]
push edi
push ebx
call fcn.10003a20
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x10003dbc
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x10003dbc
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x50]
call fcn.100093e0
cmp eax, 0x103
jne 0x10003b70
mov edi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x10003df4
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x10003df4
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
lea eax, [ebx - 0xc]
mov byte [ebp + 0xb], 1
cmp eax, 0x10011024
je 0x10003e1c
mov eax, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
add ebx, 0xfffffff4
push ebx
call eax
test eax, eax
jg 0x10003e1c
mov eax, dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete___void__]
push ebx
call eax
add esp, 4
mov eax, dword [ebp - 0x20]
lea ecx, [eax - 0xc]
cmp ecx, 0x10011024
je 0x10003e42
lea ebx, [eax - 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x10003e42
push ebx
call dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete___void__]
add esp, 4
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
lea eax, [edi - 0xc]
cmp eax, 0x10011024
je 0x10003e6a
add edi, 0xfffffff4
push edi
call ebx
test eax, eax
jg 0x10003e6a
push edi
mov edi, dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete___void__]
call edi
add esp, 4
jmp 0x10003e70
mov edi, dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete___void__]
lea eax, [esi - 0xc]
cmp eax, 0x10011024
je 0x10003e8a
add esi, 0xfffffff4
push esi
call ebx
test eax, eax
jg 0x10003e8a
push esi
call edi
add esp, 4
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x10003e9f
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x44], 0
mov eax, dword [ebp - 0x14]
lea ecx, [eax - 0xc]
cmp ecx, 0x10011024
je 0x10003ebd
lea esi, [eax - 0xc]
push esi
call ebx
test eax, eax
jg 0x10003ebd
push esi
call edi
add esp, 4
mov bl, byte [ebp + 0xb]
mov eax, dword [ebp - 0x18]
lea ecx, [eax - 0xc]
cmp ecx, 0x10011024
je 0x10003ee2
lea esi, [eax - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x10003ee2
push esi
call edi
add esp, 4
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x10003ef0
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
xor bl, bl
jmp 0x10003ec0