Function at 0x469880
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
lea eax, [ebp - 0xc]
push ebx
push esi
push edi
push eax
push 0x20119
push 0
push str.SoftwareFreeRDPFreeRDPClient
push connect
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov esi, dword [ebp + 8]
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x469bf0
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.DesktopWidth
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x4698e7
mov eax, dword [ebp - 8]
mov dword [esi + 0x408], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.DesktopHeight
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469913
mov eax, dword [ebp - 8]
mov dword [esi + 0x410], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Fullscreen
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469942
cmp dword [ebp - 8], eax
setne al
mov dword [esi + 0x3008], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.ColorDepth
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46996e
mov eax, dword [ebp - 8]
mov dword [esi + 0x418], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.KeyboardType
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46999a
mov eax, dword [ebp - 8]
mov dword [esi + 0x5208], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.KeyboardSubType
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x4699c6
mov eax, dword [ebp - 8]
mov dword [esi + 0x5210], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.KeyboardFunctionKeys
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x4699f2
mov eax, dword [ebp - 8]
mov dword [esi + 0x5218], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.KeyboardLayout
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469a1e
mov eax, dword [ebp - 8]
mov dword [esi + 0x5200], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.ExtSecurity
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469a4d
cmp dword [ebp - 8], eax
setne al
mov dword [esi + 0x2218], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.NlaSecurity
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469a7c
cmp dword [ebp - 8], eax
setne al
mov dword [esi + 0x2208], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.TlsSecurity
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469aab
cmp dword [ebp - 8], eax
setne al
mov dword [esi + 0x2200], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.RdpSecurity
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469ada
cmp dword [ebp - 8], eax
setne al
mov dword [esi + 0x2210], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.MstscCookieMode
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469b09
cmp dword [ebp - 8], eax
setne al
mov dword [esi + 0x2400], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.CookieMaxLength
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469b35
mov eax, dword [ebp - 8]
mov dword [esi + 0x2408], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.BitmapCache
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469b64
cmp dword [ebp - 8], eax
setne al
mov dword [esi + 0x4e08], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.OffscreenBitmapCache
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469b93
cmp dword [ebp - 8], eax
setne al
mov dword [esi + 0x5800], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.OffscreenBitmapCacheSize
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469bbf
mov eax, dword [ebp - 8]
mov dword [esi + 0x5808], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.OffscreenBitmapCacheEntries
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469beb
mov eax, dword [ebp - 8]
mov dword [esi + 0x5810], eax
push dword [ebp - 0xc]
call ebx
lea eax, [ebp - 0xc]
push eax
push 0x20119
push 0
push str.SoftwareFreeRDPFreeRDPClientBitmapCacheV2
push connect
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x469e61
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.NumCells
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469c3f
mov eax, dword [ebp - 8]
mov dword [esi + 0x4e28], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cell0NumEntries
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469c6d
mov ecx, dword [esi + 0x4e30]
mov eax, dword [ebp - 8]
mov dword [ecx], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cell0Persistent
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469ca1
mov eax, dword [esi + 0x4e30]
xor ecx, ecx
cmp dword [ebp - 8], ecx
setne cl
mov dword [eax + 4], ecx
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cell1NumEntries
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469cd0
mov ecx, dword [esi + 0x4e30]
mov eax, dword [ebp - 8]
mov dword [ecx + 8], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cell1Persistent
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469d04
mov eax, dword [esi + 0x4e30]
xor ecx, ecx
cmp dword [ebp - 8], ecx
setne cl
mov dword [eax + 0xc], ecx
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cell2NumEntries
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469d33
mov ecx, dword [esi + 0x4e30]
mov eax, dword [ebp - 8]
mov dword [ecx + 0x10], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cell2Persistent
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469d67
mov eax, dword [esi + 0x4e30]
xor ecx, ecx
cmp dword [ebp - 8], ecx
setne cl
mov dword [eax + 0x14], ecx
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cell3NumEntries
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469d96
mov ecx, dword [esi + 0x4e30]
mov eax, dword [ebp - 8]
mov dword [ecx + 0x18], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cell3Persistent
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469dca
mov eax, dword [esi + 0x4e30]
xor ecx, ecx
cmp dword [ebp - 8], ecx
setne cl
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cell4NumEntries
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469df9
mov ecx, dword [esi + 0x4e30]
mov eax, dword [ebp - 8]
mov dword [ecx + 0x20], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cell4Persistent
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469e2d
mov eax, dword [esi + 0x4e30]
xor ecx, ecx
cmp dword [ebp - 8], ecx
setne cl
mov dword [eax + 0x24], ecx
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.AllowCacheWaitingList
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469e5c
cmp dword [ebp - 8], eax
setne al
mov dword [esi + 0x4e18], eax
push dword [ebp - 0xc]
call ebx
lea eax, [ebp - 0xc]
push eax
push 0x20119
push 0
push str.SoftwareFreeRDPFreeRDPClientGlyphCache
push connect
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x46a2e9
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.SupportLevel
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469eb0
mov eax, dword [ebp - 8]
mov dword [esi + 0x5600], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache0NumEntries
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469ee0
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache0MaxCellSize
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469f11
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 2], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache1NumEntries
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469f42
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 4], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache1MaxCellSize
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469f73
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 6], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache2NumEntries
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469fa4
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 8], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache2MaxCellSize
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x469fd5
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 0xa], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache3NumEntries
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a006
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 0xc], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache3MaxCellSize
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a037
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 0xe], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache4NumEntries
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a068
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 0x10], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache4MaxCellSize
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a099
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 0x12], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache5NumEntries
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a0ca
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 0x14], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache5MaxCellSize
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a0fb
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 0x16], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache6NumEntries
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a12c
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 0x18], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache6MaxCellSize
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a15d
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 0x1a], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache7NumEntries
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a18e
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 0x1c], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache7MaxCellSize
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a1bf
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 0x1e], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache8NumEntries
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a1f0
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 0x20], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache8MaxCellSize
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a221
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 0x22], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache9NumEntries
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a252
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 0x24], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.Cache9MaxCellSize
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a283
mov ecx, dword [esi + 0x5608]
mov ax, word [ebp - 8]
mov word [ecx + 0x26], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.FragCacheNumEntries
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a2b3
mov ecx, dword [esi + 0x5610]
mov ax, word [ebp - 8]
mov word [ecx], ax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.FragCacheMaxCellSize
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a2e4
mov ecx, dword [esi + 0x5610]
mov ax, word [ebp - 8]
mov word [ecx + 2], ax
push dword [ebp - 0xc]
call ebx
lea eax, [ebp - 0xc]
push eax
push 0x20119
push 0
push str.SoftwareFreeRDPFreeRDPClientPointerCache
push connect
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x46a39b
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.LargePointer
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a33b
cmp dword [ebp - 8], eax
setne al
mov dword [esi + 0x6a00], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.ColorPointer
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a36a
cmp dword [ebp - 8], eax
setne al
mov dword [esi + 0x5000], eax
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
push str.PointerCacheSize
push dword [ebp - 0xc]
call edi
test eax, eax
jne 0x46a396
mov eax, dword [ebp - 8]
mov dword [esi + 0x5008], eax
push dword [ebp - 0xc]
call ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret