Function at 0x1001b9e0
Capabilities:
Inspect section memory permissions
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbc
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
xorps xmm0, xmm0
push edi
mov edi, edx
movlpd qword [ebp - 0xb8], xmm0
mov eax, dword [esi]
lea ebx, [esi + 0x7f]
and eax, 0x400000
mov dword [ebp - 0xbc], ebx
or eax, 0
jne 0x1001ba66
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x90], 1
push eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.SendBufferingDefault
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp dword [ebp - 0x90], 0
mov al, byte [ebx]
setne cl
and al, 0xfe
or cl, al
mov byte [ebx], cl
jmp 0x1001ba6c
mov dword [ebp - 0xbc], ebx
mov eax, dword [esi]
and eax, 0x800000
or eax, 0
jne 0x1001bac5
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x90], 1
push eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.SendPacingDefault
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [ebp - 0x90]
mov al, byte [ebx]
neg ecx
sbb cl, cl
and al, 0xfd
and cl, 2
or cl, al
mov byte [ebx], cl
mov eax, dword [esi]
and eax, 0x1000000
or eax, 0
jne 0x1001bb1e
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x90], 1
push eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.MigrationEnabled
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [ebp - 0x90]
mov al, byte [ebx]
neg ecx
sbb cl, cl
and al, 0xfb
and cl, 4
or cl, al
mov byte [ebx], cl
mov eax, dword [esi]
and eax, 0x2000000
or eax, 0
jne 0x1001bb73
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.DatagramReceiveEnabled
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [ebp - 0x90]
mov al, byte [ebx]
neg ecx
sbb cl, cl
and al, 0xf7
and cl, 8
or cl, al
mov byte [ebx], cl
mov eax, dword [esi]
and eax, 0x200000
or eax, 0
jne 0x1001bbc7
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x90], 0x10
push eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.MaxOperationsPerDrain
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [ebp - 0x90]
cmp eax, 0xff
ja 0x1001bbc7
mov byte [esi + 0x7e], al
mov eax, dword [esi]
and eax, 0x40000
or eax, 0
jne 0x1001bc1c
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x90], 0x41
push eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.RetryMemoryFraction
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [ebp - 0x90]
cmp eax, 0xffff
ja 0x1001bc1c
mov word [esi + 0x70], ax
mov eax, dword [esi]
and eax, 0x80000
or eax, 0
jne 0x1001bc73
cmp byte [0x100584b1], al
jne 0x1001bc73
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.LoadBalancingMode
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [ebp - 0x90]
cmp eax, 3
jae 0x1001bc73
mov word [esi + 0x72], ax
mov eax, dword [esi]
and eax, 0x100000
or eax, 0
jne 0x1001bcb2
cmp byte [0x100584b1], al
jne 0x1001bcb2
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [esi + 0x68]
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.FixedServerID
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esi]
and eax, 0x100
or eax, 0
jne 0x1001bd03
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x90], 0xfa
push eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.MaxWorkerQueueDelayMs
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
imul eax, dword [ebp - 0x90], 0x3e8
mov dword [esi + 0x44], eax
mov eax, dword [esi]
and eax, 0x200
or eax, 0
jne 0x1001bd3a
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [esi + 0x48]
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.MaxStatelessOperations
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esi]
and eax, 0x400
or eax, 0
jne 0x1001bd71
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [esi + 0x4c]
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.InitialWindowPackets
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esi]
and eax, 0x800
or eax, 0
jne 0x1001bda8
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [esi + 0x50]
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.SendIdleTimeoutMs
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esi]
and eax, 0x1000
or eax, 0
jne 0x1001bddf
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.InitialRttMs
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esi]
and eax, 0x2000
or eax, 0
jne 0x1001be24
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 4
push eax
lea ebx, [esi + 0x58]
push ebx
lea eax, [ebp - 0x94]
push eax
push 0
push str.MaxAckDelayMs
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp dword [ebx], 0x3fff
jbe 0x1001be24
mov dword [ebx], 0x19
mov eax, dword [esi]
and eax, 0x4000
or eax, 0
jne 0x1001be69
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 4
push eax
lea ebx, [esi + 0x5c]
push ebx
lea eax, [ebp - 0x94]
push eax
push 0
push str.DisconnectTimeoutMs
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp dword [ebx], 0x927c0
jbe 0x1001be69
mov dword [ebx], 0x927c0
mov eax, dword [esi]
and eax, 0x8000
or eax, 0
jne 0x1001bea0
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [esi + 0x60]
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.KeepAliveIntervalMs
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esi]
and eax, 4
or eax, 0
jne 0x1001bf23
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 8
push eax
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.IdleTimeoutMs
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jle 0x1001bee6
movzx eax, ax
or eax, 0x80070000
test eax, eax
js 0x1001bf23
cmp dword [ebp - 0x8c], 4
mov ecx, dword [ebp - 0xb8]
mov dword [esi + 0x20], ecx
jne 0x1001befe
xor eax, eax
jmp 0x1001bf04
mov eax, dword [ebp - 0xb4]
mov dword [esi + 0x24], eax
cmp eax, 0x3fffffff
jb 0x1001bf23
ja 0x1001bf15
cmp ecx, 0xffffffff
jbe 0x1001bf23
mov dword [esi + 0x20], 0x7530
mov dword [esi + 0x24], 0
mov eax, dword [esi]
and eax, 2
or eax, 0
jne 0x1001bfa6
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 8
push eax
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.HandshakeIdleTimeoutMs
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jle 0x1001bf69
movzx eax, ax
or eax, 0x80070000
test eax, eax
js 0x1001bfa6
cmp dword [ebp - 0x8c], 4
mov ecx, dword [ebp - 0xb8]
mov dword [esi + 0x18], ecx
jne 0x1001bf81
xor eax, eax
jmp 0x1001bf87
mov eax, dword [ebp - 0xb4]
mov dword [esi + 0x1c], eax
cmp eax, 0x3fffffff
jb 0x1001bfa6
ja 0x1001bf98
cmp ecx, 0xffffffff
jbe 0x1001bfa6
mov dword [esi + 0x18], 0x7530
mov dword [esi + 0x1c], 0
mov eax, dword [esi]
and eax, 8
or eax, 0
jne 0x1001bfdb
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [esi + 0x30]
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.TlsClientMaxSendBuffer
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esi]
and eax, 0x10
or eax, 0
jne 0x1001c010
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [esi + 0x34]
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.TlsServerMaxSendBuffer
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esi]
and eax, 0x20
or eax, 0
jne 0x1001c045
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [esi + 0x38]
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.StreamRecvWindowDefault
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esi]
and eax, 0x40
or eax, 0
jne 0x1001c095
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 4
push eax
lea ebx, [esi + 0x3c]
push ebx
lea eax, [ebp - 0x94]
push eax
push 0
push str.StreamRecvBufferDefault
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [ebx]
test ecx, ecx
je 0x1001c08f
lea eax, [ecx - 1]
test ecx, eax
jne 0x1001c08f
cmp ecx, 0x1000
jae 0x1001c095
mov dword [ebx], 0x1000
mov eax, dword [esi]
and eax, 0x80
or eax, 0
jne 0x1001c0cc
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [esi + 0x40]
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.ConnFlowControlWindow
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esi]
and eax, 1
or eax, 0
jne 0x1001c11b
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 8
push eax
lea ebx, [esi + 0x10]
push ebx
lea eax, [ebp - 0x94]
push eax
push 0
push str.MaxBytesPerKey
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp dword [ebx + 4], 0x40
jb 0x1001c11b
ja 0x1001c10e
cmp dword [ebx], 0
jbe 0x1001c11b
mov dword [ebx], 0
mov dword [ebx + 4], 0x40
mov eax, dword [esi]
and eax, 0x4000000
or eax, 0
jne 0x1001c181
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.ResumptionLevel
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jle 0x1001c163
movzx eax, ax
or eax, 0x80070000
test eax, eax
js 0x1001c181
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0xbc]
cmp eax, 2
ja 0x1001c187
shl al, 4
xor al, byte [ebx]
and al, 0x30
xor byte [ebx], al
jmp 0x1001c187
mov ebx, dword [ebp - 0xbc]
mov eax, dword [esi]
and eax, 0x10000000
or eax, 0
jne 0x1001c1dc
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.VersionNegotiationExtEnabled
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [ebp - 0x90]
mov al, byte [ebx]
neg ecx
sbb cl, cl
and al, 0xbf
and cl, 0x40
or cl, al
mov byte [ebx], cl
mov eax, dword [esi]
and eax, 0x8000000
or eax, 0
jne 0x1001c5c5
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0xa4]
push eax
push 0
lea eax, [ebp - 0x94]
push eax
push 0
push str.AcceptableVersions
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jle 0x1001c22b
movzx eax, ax
or eax, 0x80070000
test eax, eax
js 0x1001c5a8
lea eax, [ebp - 0xa8]
push eax
push 0
lea eax, [ebp - 0x94]
push eax
push 0
push str.OfferedVersions
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jle 0x1001c25e
movzx eax, ax
or eax, 0x80070000
test eax, eax
js 0x1001c5a8
lea eax, [ebp - 0xac]
push eax
push 0
lea eax, [ebp - 0x94]
push eax
push 0
push str.FullyDeployedVersions
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jle 0x1001c291
movzx eax, ax
or eax, 0x80070000
test eax, eax
js 0x1001c5a8
mov eax, dword [ebp - 0xa4]
test eax, eax
je 0x1001c5a8
mov ecx, dword [ebp - 0xa8]
test ecx, ecx
je 0x1001c5a8
mov edx, dword [ebp - 0xac]
test edx, edx
je 0x1001c5a8
add eax, edx
add ecx, 0x18
add eax, ecx
push eax
push 0
push dword [0x10059a38]
mov dword [ebp - 0x94], eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebx, eax
test ebx, ebx
jne 0x1001c309
test byte [0x10059ab8], 2
je 0x1001c5c5
push eax
push dword [ebp - 0x94]
push str.VersionSettings
call fcn.10001500
add esp, 0xc
jmp 0x1001c5c5
lea eax, [ebx + 0x18]
mov edx, str.AcceptableVersions
mov dword [ebx], eax
mov ecx, edi
mov eax, dword [ebp - 0xa4]
shr eax, 2
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0x8c]
push eax
push dword [ebx]
call fcn.1003edb0
add esp, 8
test eax, eax
js 0x1001c4bb
lfence
mov ecx, dword [ebx + 0xc]
mov edx, str.OfferedVersions
mov eax, dword [ebx]
lea eax, [eax + ecx*4]
mov ecx, edi
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0xa8]
shr eax, 2
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0x8c]
push eax
push dword [ebx + 4]
call fcn.1003edb0
add esp, 8
test eax, eax
js 0x1001c4bb
lfence
mov ecx, dword [ebx + 0x10]
mov edx, str.FullyDeployedVersions
mov eax, dword [ebx + 4]
lea eax, [eax + ecx*4]
mov ecx, edi
mov dword [ebx + 8], eax
mov eax, dword [ebp - 0xac]
shr eax, 2
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0x8c]
push eax
push dword [ebx + 8]
call fcn.1003edb0
add esp, 8
test eax, eax
js 0x1001c4bb
xor edx, edx
cmp dword [ebx + 0xc], edx
jbe 0x1001c439
mov eax, dword [ebx]
mov dword [ebp - 0x94], eax
mov ecx, dword [ebp - 0x94]
mov eax, dword [eax + edx*4]
bswap eax
mov dword [ecx + edx*4], eax
mov eax, dword [ebx]
mov dword [ebp - 0x94], eax
mov ecx, dword [eax + edx*4]
cmp ecx, 0x1d0000ff
ja 0x1001c417
je 0x1001c433
cmp ecx, 0xcdab
je 0x1001c433
cmp ecx, 0x1000000
jmp 0x1001c41d
cmp ecx, 0xcf43336b
je 0x1001c433
mov eax, ecx
and eax, 0xf0f0f0f
cmp eax, 0xa0a0a0a
jne 0x1001c484
mov eax, dword [ebp - 0x94]
inc edx
cmp edx, dword [ebx + 0xc]
jb 0x1001c3e4
xor edx, edx
cmp dword [ebx + 0x10], edx
jbe 0x1001c4f5
mov eax, dword [ebx + 4]
mov dword [ebp - 0x94], eax
nop dword [eax]
mov ecx, dword [ebp - 0x94]
mov eax, dword [eax + edx*4]
bswap eax
mov dword [ecx + edx*4], eax
mov eax, dword [ebx + 4]
mov dword [ebp - 0x94], eax
mov ecx, dword [eax + edx*4]
cmp ecx, 0x1d0000ff
ja 0x1001c4cf
je 0x1001c4eb
cmp ecx, 0xcdab
je 0x1001c4eb
cmp ecx, 0x1000000
jmp 0x1001c4d5
test byte [0x10059abe], 0x10
je 0x1001c4bb
push edx
push ecx
push str.Invalid_AcceptableVersion_loaded_from_storage__0x_x_at_position__d
push 0xffffffffffffffff
lea eax, [ebp - 0x88]
push 0x80
push eax
call fcn.100015f0
lea eax, [ebp - 0x88]
mov edx, 0x1004d088
push eax
call fcn.10001490
add esp, 0x1c
push ebx
push 0
push dword [0x10059a38]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1001c5c5
cmp ecx, 0xcf43336b
je 0x1001c4eb
mov eax, ecx
and eax, 0xf0f0f0f
cmp eax, 0xa0a0a0a
jne 0x1001c539
mov eax, dword [ebp - 0x94]
inc edx
cmp edx, dword [ebx + 0x10]
jb 0x1001c450
xor edx, edx
cmp dword [ebx + 0x14], edx
jbe 0x1001c574
mov eax, dword [ebx + 8]
mov dword [ebp - 0x94], eax
mov ecx, dword [ebp - 0x94]
mov eax, dword [eax + edx*4]
bswap eax
mov dword [ecx + edx*4], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x94], eax
mov ecx, dword [eax + edx*4]
cmp ecx, 0x1d0000ff
ja 0x1001c552
je 0x1001c56e
cmp ecx, 0xcdab
je 0x1001c56e
cmp ecx, 0x1000000
jmp 0x1001c558
test byte [0x10059abe], 0x10
je 0x1001c4bb
push edx
push ecx
push str.Invalid_OfferedVersion_loaded_from_storage__0x_x_at_position__d
jmp 0x1001c494
cmp ecx, 0xcf43336b
je 0x1001c56e
mov eax, ecx
and eax, 0xf0f0f0f
cmp eax, 0xa0a0a0a
jne 0x1001c58f
mov eax, dword [ebp - 0x94]
inc edx
cmp edx, dword [ebx + 0x14]
jb 0x1001c505
mov eax, dword [esi + 8]
test eax, eax
je 0x1001c58a
push eax
push 0
push dword [0x10059a38]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [esi + 8], ebx
jmp 0x1001c5c5
test byte [0x10059abe], 0x10
je 0x1001c4bb
push edx
push ecx
push str.Invalid_FullyDeployedVersion_loaded_from_storage__0x_x_at_position__d
jmp 0x1001c494
mov eax, dword [esi + 8]
test eax, eax
je 0x1001c5c5
push eax
push 0
push dword [0x10059a38]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [esi + 8], 0
mov eax, dword [esi]
mov cx, word [esi + 0x74]
and eax, 0x20000000
or eax, 0
mov dx, word [esi + 0x76]
mov word [ebp - 0xa0], cx
mov word [ebp - 0x9c], dx
jne 0x1001c623
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 2
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.MinimumMtu
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov cx, word [ebp - 0xa0]
mov dx, word [ebp - 0x9c]
mov eax, dword [esi]
mov ebx, dword [esi + 4]
mov dword [ebp - 0x98], eax
and eax, 0x40000000
or eax, 0
jne 0x1001c67f
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 2
push eax
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.MaximumMtu
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esi]
mov ebx, dword [esi + 4]
mov cx, word [ebp - 0xa0]
mov dx, word [ebp - 0x9c]
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], 0x5dc
mov eax, 0x4e0
cmp dx, word [ebp - 0x94]
jbe 0x1001c69e
mov edx, 0x5dc
jmp 0x1001c6a6
cmp dx, ax
jae 0x1001c6ad
mov dx, ax
mov word [ebp - 0x9c], dx
cmp cx, word [ebp - 0x94]
jbe 0x1001c6bd
mov ecx, 0x5dc
jmp 0x1001c6c5
cmp cx, ax
jae 0x1001c6cc
mov cx, ax
mov word [ebp - 0xa0], cx
cmp cx, dx
ja 0x1001c6d9
mov word [esi + 0x76], dx
mov word [esi + 0x74], cx
and ebx, 1
xor eax, eax
or eax, ebx
jne 0x1001c710
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 1
push eax
lea eax, [esi + 0x81]
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.MtuDiscoveryMissingProbeCount
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esi]
and eax, 0x80000000
or eax, 0
jne 0x1001c747
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 8
push eax
lea eax, [esi + 0x28]
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.MtuDiscoverySearchCompleteTimeoutUs
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esi + 4]
xor eax, eax
and ecx, 2
or eax, ecx
jne 0x1001c79c
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x90], 0x64
push eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.MaxBindingStatelessOperations
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [ebp - 0x90]
cmp eax, 0xffff
jae 0x1001c79c
mov word [esi + 0x78], ax
mov ecx, dword [esi + 4]
xor eax, eax
and ecx, 4
or eax, ecx
jne 0x1001c7f1
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x90], 0x64
push eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.StatelessOperationExpirationMs
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [ebp - 0x90]
cmp eax, 0xffff
jae 0x1001c7f1
mov word [esi + 0x7a], ax
mov ecx, dword [esi + 4]
xor eax, eax
and ecx, 8
or eax, ecx
jne 0x1001c840
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.CongestionControlAlgorithm
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [ebp - 0x90]
cmp eax, 2
jae 0x1001c840
mov word [esi + 0x7c], ax
mov ecx, dword [esi + 4]
xor eax, eax
and ecx, 0x10
or eax, ecx
jne 0x1001c88d
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x90], 0x4e20
push eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.DestCidUpdateIdleTimeoutMs
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [ebp - 0x90]
mov dword [esi + 0x64], eax
mov ecx, dword [esi + 4]
xor eax, eax
and ecx, 0x20
or eax, ecx
jne 0x1001c8e8
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.GreaseQuicBitEnabled
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov edx, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x90]
neg ecx
mov al, byte [edx]
sbb cl, cl
and cl, 0x80
and al, 0x7f
or cl, al
mov byte [edx], cl
mov ecx, dword [esi + 4]
xor eax, eax
and ecx, 0x40
or eax, ecx
jne 0x1001c942
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.EcnEnabled
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp dword [ebp - 0x90], 0
mov al, byte [esi + 0x80]
setne cl
and al, 0xfe
or cl, al
mov byte [esi + 0x80], cl
mov ecx, dword [esi + 4]
xor eax, eax
and ecx, 0x80
or eax, ecx
jne 0x1001c9a2
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x8c], 4
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push str.HyStartEnabled
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [ebp - 0x90]
mov al, byte [esi + 0x80]
neg ecx
sbb cl, cl
and al, 0xfd
and cl, 2
or cl, al
mov byte [esi + 0x80], cl
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100483f7
mov esp, ebp
pop ebp
ret