Function at 0x40a3b0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42c6fb
mov eax, dword fs:[0]
push eax
mov eax, 0x2d28
call fcn.00417900
mov eax, dword [0x43d180]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x2d30], esi
lea ecx, [ebp - 0x7ac]
call fcn.004116e0
xor eax, eax
mov dword [ebp - 4], 0
push 0x7e
push eax
mov word [ebp - 0x108], ax
mov edi, 1
lea eax, [ebp - 0x106]
push eax
call fcn.00417930
xor eax, eax
xorps xmm0, xmm0
push 0x62
push eax
mov word [ebp - 0x24], ax
mov word [ebp - 0x12], ax
mov word [ebp - 0x88], ax
lea eax, [ebp - 0x86]
push eax
movdqu xmmword [ebp - 0x22], xmm0
call fcn.00417930
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x310], ax
lea eax, [ebp - 0x30e]
push eax
call fcn.00417930
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x724], ax
lea eax, [ebp - 0x722]
push eax
call fcn.00417930
add esp, 0x30
mov dword [ebp - 0x2d24], 0x1000
lea eax, [ebp - 0x2d28]
mov dword [ebp - 0x2d2c], 4
push eax
push edi
push 0
push 0x42dcb8
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 0x2d2c]
push eax
lea eax, [ebp - 0x2d24]
push eax
push 0
push 0
push 0x42d928
push dword [ebp - 0x2d28]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x2d28]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x2d24]
mov dword [ebp - 0x2d2c], eax
xor eax, eax
push 0x208
push eax
mov word [ebp - 0x51c], ax
lea eax, [ebp - 0x51a]
push eax
call fcn.00417930
lea eax, [ebp - 0x51c]
push eax
call fcn.00408d20
add esp, 0x10
lea ecx, [esi + 0x3cb0]
push 0x50
call fcn.00408e50
push eax
lea ecx, [ebp - 0x7ac]
call fcn.00411900
lea ecx, [esi + 0x3cb0]
call fcn.00408f30
push eax
lea ecx, [ebp - 0x7ac]
call fcn.004118f0
push 0x80
lea eax, [ebp - 0x108]
push 0
push eax
call fcn.00417930
lea eax, [ebp - 0x108]
push eax
call fcn.00410880
add esp, 0x10
mov ecx, esi
call fcn.00410950
mov ecx, esi
mov dword [ebp - 0x2d28], eax
call fcn.00410970
cmp dword [ebp - 0x2d28], 0
mov esi, eax
je 0x40a87f
test esi, esi
je 0x40a87f
mov edi, dword [ebp - 0x2d28]
lea ecx, [ebp - 0x310]
mov eax, ecx
mov edx, 0x104
sub edi, eax
mov edi, edi
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x40a5be
movzx eax, word [edi + ecx]
test ax, ax
je 0x40a5be
mov word [ecx], ax
add ecx, 2
dec edx
jne 0x40a5a0
jmp 0x40a5c2
test edx, edx
jne 0x40a5c5
sub ecx, 2
xor eax, eax
mov edx, 0x104
mov word [ecx], ax
lea ecx, [ebp - 0x724]
mov eax, ecx
sub esi, eax
lea esp, [esp]
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x40a5fe
movzx eax, word [esi + ecx]
test ax, ax
je 0x40a5fe
mov word [ecx], ax
add ecx, 2
dec edx
jne 0x40a5e0
jmp 0x40a602
test edx, edx
jne 0x40a605
sub ecx, 2
mov esi, dword [ebp - 0x2d2c]
xor eax, eax
mov word [ecx], ax
cmp esi, 0xb000
jne 0x40a689
mov dword [ebp - 0x2d28], eax
lea eax, [ebp - 0x2d28]
push eax
push 0x20019
push 0
push 0x42dd00
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x2d34], 1
mov dword [ebp - 0x2d2c], 0x64
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 0x2d2c]
push eax
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x2d34]
push eax
push 0
push str.SerialNumber
push dword [ebp - 0x2d28]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov eax, dword [ebp - 0x2d28]
test eax, eax
je 0x40a689
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x10
push 0xa
lea eax, [ebp - 0x24]
push eax
push esi
call fcn.00417b8d
add esp, 0x10
lea eax, [ebp - 0x1aa8]
lea ecx, [ebp - 0x7ac]
push eax
lea eax, [ebp - 0x51c]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x724]
push eax
lea eax, [ebp - 0x310]
push eax
call fcn.00411870
mov esi, dword [ebp - 0x2d30]
lea eax, [ebp - 0x1aa8]
push eax
lea eax, [ebp - 0x51c]
mov ecx, esi
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00409e30
push eax
lea eax, [ebp - 0x310]
push eax
lea ecx, [ebp - 0x7ac]
call fcn.004117f0
mov edi, eax
test edi, edi
jne 0x40a87f
mov edi, dword [ebp - 0x1aa4]
cmp edi, 0xc8
jne 0x40a87f
mov edi, dword [ebp - 0x1aa0]
test edi, edi
je 0x40a745
cmp edi, 0x4b1
jne 0x40a87f
lea eax, [ebp - 0x310]
mov ecx, esi
push eax
call fcn.00410c40
push 0x15
push 0
mov ecx, esi
call fcn.00410d10
lea eax, [ebp - 0x1a9c]
mov ecx, esi
push eax
call fcn.00410d50
lea eax, [ebp - 0x18f4]
mov ecx, esi
push eax
call fcn.00410ba0
push dword [ebp - 0x1090]
mov ecx, esi
call fcn.00410ca0
push dword [ebp - 0x108c]
mov ecx, esi
call fcn.00410b90
mov ecx, esi
call fcn.00410870
push eax
mov ecx, esi
call fcn.00410b70
mov ecx, esi
call fcn.004110d0
xor eax, eax
push 0x64
push eax
mov word [ebp - 0xc10], ax
lea eax, [ebp - 0xc0e]
push eax
call fcn.00417930
push 0x3fc
lea eax, [ebp - 0xbaa]
push 0
push eax
call fcn.00417930
add esp, 0x18
lea eax, [ebp - 0xc10]
mov ecx, esi
push eax
call fcn.004109a0
lea eax, [ebp - 0x1aa8]
mov ecx, esi
push eax
lea eax, [ebp - 0xc10]
push eax
call fcn.00409e30
push eax
lea eax, [ebp - 0x310]
push eax
lea ecx, [ebp - 0x7ac]
call fcn.00411e30
xor eax, eax
push 0x64
push eax
mov word [ebp - 0x22f8], ax
lea eax, [ebp - 0x22f6]
push eax
call fcn.00417930
push 0x7e8
lea eax, [ebp - 0x2292]
push 0
push eax
call fcn.00417930
add esp, 0x18
lea eax, [ebp - 0x22f8]
mov ecx, esi
push eax
call fcn.0040fb60
lea eax, [ebp - 0x51c]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1aa8]
push eax
lea eax, [ebp - 0x22f8]
push eax
mov ecx, esi
call fcn.00409e30
push eax
lea eax, [ebp - 0x310]
push eax
lea ecx, [ebp - 0x7ac]
call fcn.00411db0
xor edi, edi
lea ecx, [ebp - 0x7ac]
mov dword [ebp - 4], 0xffffffff
call fcn.00411760
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00416230
mov esp, ebp
pop ebp
ret