Function at 0x1400294b0
Capabilities:
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
mov r11, rsp
push rbp
push rbx
push rsi
push r12
lea rbp, [r11 - 0x58]
sub rsp, 0x138
mov rax, qword [0x1400f3e08]
xor rax, rsp
mov qword [rbp + 0x10], rax
mov eax, dword [rcx]
xor r12d, r12d
mov qword [r11 + 0x18], rdi
mov rsi, rdx
mov qword [r11 - 0x28], r13
mov rbx, rcx
mov qword [r11 - 0x38], r15
lea r15, [rcx + 0x8b]
mov qword [rsp + 0x58], r12
bt rax, 0x19
jb 0x14002954a
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x38]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], 1
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.SendBufferingDefault
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp dword [rsp + 0x34], r12d
movzx eax, byte [r15]
setne cl
and al, 0xfe
or cl, al
mov byte [r15], cl
mov eax, dword [rbx]
bt rax, 0x1a
jb 0x1400295a5
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x38]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], 1
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.SendPacingDefault
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rsp + 0x34]
neg eax
movzx eax, byte [r15]
sbb cl, cl
and al, 0xfd
and cl, 2
or cl, al
mov byte [r15], cl
mov eax, dword [rbx]
bt rax, 0x1b
jb 0x140029600
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x38]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], 1
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.MigrationEnabled
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rsp + 0x34]
neg eax
movzx eax, byte [r15]
sbb cl, cl
and al, 0xfb
and cl, 4
or cl, al
mov byte [r15], cl
mov eax, dword [rbx]
bt rax, 0x1c
jb 0x140029658
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x38]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], r12d
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.DatagramReceiveEnabled
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rsp + 0x34]
neg eax
movzx eax, byte [r15]
sbb cl, cl
and al, 0xf7
and cl, 8
or cl, al
mov byte [r15], cl
mov eax, dword [rbx]
bt rax, 0x18
jb 0x1400296ae
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x38]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], reloc.WS2_32.dll_recv
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.MaxOperationsPerDrain
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rsp + 0x34]
cmp eax, 0xff
ja 0x1400296ae
mov byte [rbx + 0x8a], al
mov eax, dword [rbx]
bt rax, 0x15
jb 0x140029702
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x38]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], 0x41
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.RetryMemoryFraction
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rsp + 0x34]
cmp eax, 0xffff
ja 0x140029702
mov word [rbx + 0x7c], ax
mov eax, dword [rbx]
bt rax, 0x16
jb 0x14002975a
cmp byte [0x1400f7471], r12b
jne 0x14002975a
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x38]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], r12d
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.LoadBalancingMode
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rsp + 0x34]
cmp eax, 3
jae 0x14002975a
mov word [rbx + 0x7e], ax
mov eax, dword [rbx]
bt rax, 0x17
jb 0x14002979f
cmp byte [0x1400f7471], r12b
jne 0x14002979f
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 4
mov qword [rsp + 0x28], rcx
lea rax, [rbx + 0x74]
mov rcx, qword [rsi]
lea r9, [rsp + 0x38]
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.FixedServerID
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rbx]
bt rax, 0xb
jb 0x1400297ef
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x38]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], 0xfa
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.MaxWorkerQueueDelayMs
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
imul eax, dword [rsp + 0x34], 0x3e8
mov dword [rbx + 0x50], eax
mov eax, dword [rbx]
bt rax, 0xc
jb 0x14002982b
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 4
mov qword [rsp + 0x28], rcx
lea rax, [rbx + 0x54]
mov rcx, qword [rsi]
lea r9, [rsp + 0x38]
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.MaxStatelessOperations
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rbx]
bt rax, 0xd
jb 0x140029867
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 4
mov qword [rsp + 0x28], rcx
lea rax, [rbx + 0x58]
mov rcx, qword [rsi]
lea r9, [rsp + 0x38]
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.InitialWindowPackets
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rbx]
bt rax, 0xe
jb 0x1400298a3
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 4
mov qword [rsp + 0x28], rcx
lea rax, [rbx + 0x5c]
mov rcx, qword [rsi]
lea r9, [rsp + 0x38]
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.SendIdleTimeoutMs
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rbx]
bt rax, 0xf
jb 0x1400298df
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 4
mov qword [rsp + 0x28], rcx
lea rax, [rbx + 0x60]
mov rcx, qword [rsi]
lea r9, [rsp + 0x38]
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.InitialRttMs
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rbx]
bt rax, 0x10
jb 0x140029929
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rdi, [rbx + 0x64]
lea r9, [rsp + 0x38]
mov qword [rsp + 0x20], rdi
xor r8d, r8d
mov dword [rsp + 0x30], 4
lea rdx, str.MaxAckDelayMs
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp dword [rdi], 0x3fff
jbe 0x140029929
mov dword [rdi], 0x19
mov eax, dword [rbx]
bt rax, 0x11
jb 0x140029973
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rdi, [rbx + 0x68]
lea r9, [rsp + 0x38]
mov qword [rsp + 0x20], rdi
xor r8d, r8d
mov dword [rsp + 0x30], 4
lea rdx, str.DisconnectTimeoutMs
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp dword [rdi], 0x927c0
jbe 0x140029973
mov dword [rdi], 0x927c0
mov eax, dword [rbx]
bt rax, 0x12
jb 0x1400299af
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 4
mov qword [rsp + 0x28], rcx
lea rax, [rbx + 0x6c]
mov rcx, qword [rsi]
lea r9, [rsp + 0x38]
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.KeepAliveIntervalMs
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test byte [rbx], 4
movabs rdi, 0x3fffffffffffffff
jne 0x140029a23
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x38]
lea rax, [rsp + 0x58]
mov dword [rsp + 0x30], 8
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.IdleTimeoutMs
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jle 0x140029a00
movzx eax, ax
or eax, 0x80070000
test eax, eax
js 0x140029a23
cmp dword [rsp + 0x30], 4
mov eax, dword [rsp + 0x58]
je 0x140029a12
mov rax, qword [rsp + 0x58]
mov qword [rbx + 0x20], rax
cmp rax, rdi
jbe 0x140029a23
mov qword [rbx + 0x20], 0x7530
test byte [rbx], 2
jne 0x140029a8d
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x38]
lea rax, [rsp + 0x58]
mov dword [rsp + 0x30], 8
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.HandshakeIdleTimeoutMs
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jle 0x140029a6a
movzx eax, ax
or eax, 0x80070000
test eax, eax
js 0x140029a8d
cmp dword [rsp + 0x30], 4
mov eax, dword [rsp + 0x58]
je 0x140029a7c
mov rax, qword [rsp + 0x58]
mov qword [rbx + 0x18], rax
cmp rax, rdi
jbe 0x140029a8d
mov qword [rbx + 0x18], 0x7530
test byte [rbx], 8
jne 0x140029ac5
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 4
mov qword [rsp + 0x28], rcx
lea rax, [rbx + 0x30]
mov rcx, qword [rsi]
lea r9, [rsp + 0x38]
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.TlsClientMaxSendBuffer
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test byte [rbx], 0x10
jne 0x140029afd
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 4
mov qword [rsp + 0x28], rcx
lea rax, [rbx + 0x34]
mov rcx, qword [rsi]
lea r9, [rsp + 0x38]
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.TlsServerMaxSendBuffer
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test byte [rbx], 0x20
jne 0x140029b35
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 4
mov qword [rsp + 0x28], rcx
lea rax, [rbx + 0x38]
mov rcx, qword [rsi]
lea r9, [rsp + 0x38]
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.StreamRecvWindowDefault
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test byte [rbx], 0x40
jne 0x140029b6d
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 4
mov qword [rsp + 0x28], rcx
lea rax, [rbx + 0x3c]
mov rcx, qword [rsi]
lea r9, [rsp + 0x38]
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.StreamRecvWindowBidiLocalDefault
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test byte [rbx], 0x80
jne 0x140029ba5
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 4
mov qword [rsp + 0x28], rcx
lea rax, [rbx + 0x40]
mov rcx, qword [rsi]
lea r9, [rsp + 0x38]
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.StreamRecvWindowBidiRemoteDefault
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rbx]
bt rax, 8
jb 0x140029be1
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 4
mov qword [rsp + 0x28], rcx
lea rax, [rbx + 0x44]
mov rcx, qword [rsi]
lea r9, [rsp + 0x38]
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.StreamRecvWindowUnidiDefault
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rbx]
bt rax, 9
jb 0x140029c38
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rdi, [rbx + 0x48]
lea r9, [rsp + 0x38]
mov qword [rsp + 0x20], rdi
xor r8d, r8d
mov dword [rsp + 0x30], 4
lea rdx, str.StreamRecvBufferDefault
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [rdi]
test ecx, ecx
je 0x140029c32
lea eax, [rcx - 1]
test ecx, eax
jne 0x140029c32
cmp ecx, 0x1000
jae 0x140029c38
mov dword [rdi], 0x1000
mov eax, dword [rbx]
bt rax, 0xa
jb 0x140029c74
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 4
mov qword [rsp + 0x28], rcx
lea rax, [rbx + 0x4c]
mov rcx, qword [rsi]
lea r9, [rsp + 0x38]
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.ConnFlowControlWindow
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test byte [rbx], 1
movabs r13, 0x4000000000
jne 0x140029cbe
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rdi, [rbx + 0x10]
lea r9, [rsp + 0x38]
mov qword [rsp + 0x20], rdi
xor r8d, r8d
mov dword [rsp + 0x30], 8
lea rdx, str.MaxBytesPerKey
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp qword [rdi], r13
jbe 0x140029cbe
mov qword [rdi], r13
mov eax, dword [rbx]
bt rax, 0x1d
jb 0x140029d20
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x38]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x30], 4
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.ResumptionLevel
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jle 0x140029d09
movzx eax, ax
or eax, 0x80070000
test eax, eax
js 0x140029d20
mov eax, dword [rsp + 0x34]
cmp eax, 2
ja 0x140029d20
and byte [r15], 0xcf
and al, 3
shl al, 4
or byte [r15], al
mov eax, dword [rbx]
bt rax, 0x1f
jb 0x140029d78
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x38]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], r12d
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.VersionNegotiationExtEnabled
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rsp + 0x34]
neg eax
movzx eax, byte [r15]
sbb cl, cl
and al, 0xbf
and cl, 0x40
or cl, al
mov byte [r15], cl
mov eax, dword [rbx]
mov qword [rsp + 0x128], r14
bt rax, 0x1e
jb 0x14002a2aa
mov rcx, qword [rsi]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x48]
xor r8d, r8d
mov qword [rsp + 0x20], r12
lea rdx, str.AcceptableVersions
mov dword [rsp + 0x54], r12d
mov dword [rsp + 0x50], r12d
mov dword [rsp + 0x38], r12d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jle 0x140029dd1
movzx eax, ax
or eax, 0x80070000
test eax, eax
js 0x14002a28e
mov rcx, qword [rsi]
lea rax, [rsp + 0x54]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x48]
xor r8d, r8d
mov qword [rsp + 0x20], r12
lea rdx, str.OfferedVersions
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jle 0x140029e0c
movzx eax, ax
or eax, 0x80070000
test eax, eax
js 0x14002a28e
mov rcx, qword [rsi]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x48]
xor r8d, r8d
mov qword [rsp + 0x20], r12
lea rdx, str.FullyDeployedVersions
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jle 0x140029e47
movzx eax, ax
or eax, 0x80070000
test eax, eax
js 0x14002a28e
mov r8d, dword [rsp + 0x50]
test r8d, r8d
je 0x14002a28e
mov edx, dword [rsp + 0x54]
test edx, edx
je 0x14002a28e
mov eax, dword [rsp + 0x38]
test eax, eax
je 0x14002a28e
lea rcx, [r8 + rax]
lea rdi, [rdx + 0x28]
xor edx, edx
add rdi, rcx
mov rcx, qword [0x1400f8a70]
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r14, rax
test rax, rax
jne 0x140029eef
test byte [0x1400f8b38], 2
je 0x14002a2aa
lea rax, str.VersionSettings
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x70], rax
lea r9d, [r14 + 3]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x78], reloc.WS2_32.dll_recv
mov qword [rbp - 0x80], rax
lea rdx, [0x1400d0050]
lea rax, [rsp + 0x60]
mov qword [rbp - 0x78], 8
mov qword [rsp + 0x20], rax
call fcn.140001460
jmp 0x14002a2aa
add rax, 0x28
lea rcx, [rsp + 0x30]
mov qword [r14], rax
lea r9, [rsp + 0x48]
mov eax, dword [rsp + 0x50]
lea rdx, str.AcceptableVersions
shr eax, 2
xor r8d, r8d
mov dword [r14 + 0x18], eax
mov eax, dword [rsp + 0x50]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsi]
mov dword [rsp + 0x30], eax
mov rax, qword [r14]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jle 0x140029f41
movzx eax, ax
or eax, 0x80070000
test eax, eax
js 0x14002a1e9
mov rax, qword [r14]
lea r9, [rsp + 0x48]
mov ecx, dword [r14 + 0x18]
lea rdx, str.OfferedVersions
xor r8d, r8d
lea rcx, [rax + rcx*4]
mov qword [r14 + 8], rcx
lea rcx, [rsp + 0x30]
mov eax, dword [rsp + 0x54]
shr eax, 2
mov dword [r14 + 0x1c], eax
mov eax, dword [rsp + 0x54]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsi]
mov dword [rsp + 0x30], eax
mov rax, qword [r14 + 8]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jle 0x140029fa2
movzx eax, ax
or eax, 0x80070000
test eax, eax
js 0x14002a1e9
mov rax, qword [r14 + 8]
lea r9, [rsp + 0x48]
mov ecx, dword [r14 + 0x1c]
lea rdx, str.FullyDeployedVersions
xor r8d, r8d
lea rcx, [rax + rcx*4]
mov qword [r14 + 0x10], rcx
lea rcx, [rsp + 0x30]
mov eax, dword [rsp + 0x38]
shr eax, 2
mov dword [r14 + 0x20], eax
mov eax, dword [rsp + 0x38]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsi]
mov dword [rsp + 0x30], eax
mov rax, qword [r14 + 0x10]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jle 0x14002a004
movzx eax, ax
or eax, 0x80070000
test eax, eax
js 0x14002a1e9
mov r8d, r12d
cmp dword [r14 + 0x18], r12d
jbe 0x14002a077
mov r9, qword [r14]
nop word [rax + rax]
mov eax, r8d
lea rcx, [rax*4]
mov eax, dword [r9 + rax*4]
bswap eax
mov dword [r9 + rcx], eax
mov r9, qword [r14]
mov edx, dword [r9 + rcx]
cmp edx, 0xcdab
je 0x14002a06e
cmp edx, 0x1000000
je 0x14002a06e
cmp edx, 0x1d0000ff
je 0x14002a06e
cmp edx, 0xcf43336b
je 0x14002a06e
mov eax, edx
and eax, 0xf0f0f0f
cmp eax, 0xa0a0a0a
jne 0x14002a179
inc r8d
cmp r8d, dword [r14 + 0x18]
jb 0x14002a020
mov r8d, r12d
cmp dword [r14 + 0x1c], r12d
jbe 0x14002a0e8
mov r9, qword [r14 + 8]
nop dword [rax]
nop dword [rax + rax]
mov eax, r8d
lea rcx, [rax*4]
mov eax, dword [r9 + rax*4]
bswap eax
mov dword [r9 + rcx], eax
mov r9, qword [r14 + 8]
mov edx, dword [r9 + rcx]
cmp edx, 0xcdab
je 0x14002a0df
cmp edx, 0x1000000
je 0x14002a0df
cmp edx, 0x1d0000ff
je 0x14002a0df
cmp edx, 0xcf43336b
je 0x14002a0df
mov eax, edx
and eax, 0xf0f0f0f
cmp eax, 0xa0a0a0a
jne 0x14002a200
inc r8d
cmp r8d, dword [r14 + 0x1c]
jb 0x14002a090
mov r8d, r12d
cmp dword [r14 + 0x20], r12d
jbe 0x14002a158
mov r9, qword [r14 + 0x10]
nop word [rax + rax]
mov eax, r8d
lea rcx, [rax*4]
mov eax, dword [r9 + rax*4]
bswap eax
mov dword [r9 + rcx], eax
mov r9, qword [r14 + 0x10]
mov edx, dword [r9 + rcx]
cmp edx, 0xcdab
je 0x14002a14f
cmp edx, 0x1000000
je 0x14002a14f
cmp edx, 0x1d0000ff
je 0x14002a14f
cmp edx, 0xcf43336b
je 0x14002a14f
mov eax, edx
and eax, 0xf0f0f0f
cmp eax, 0xa0a0a0a
jne 0x14002a243
inc r8d
cmp r8d, dword [r14 + 0x20]
jb 0x14002a100
mov r8, qword [rbx + 8]
test r8, r8
je 0x14002a170
mov rcx, qword [0x1400f8a70]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbx + 8], r14
jmp 0x14002a2aa
test byte [0x1400f8b3e], 0x10
je 0x14002a1e9
mov dword [rsp + 0x28], r8d
lea r9, str.Invalid_AcceptableVersion_loaded_from_storage__0x_x_at_position__d
mov dword [rsp + 0x20], edx
lea rcx, [rbp - 0x70]
mov rdi, 0xffffffffffffffff
mov edx, 0x80
mov r8, rdi
call fcn.1400015d0
lea rax, [rbp - 0x70]
nop
inc rdi
cmp byte [rax + rdi], r12b
jne 0x14002a1b0
lea rax, [rbp - 0x70]
mov dword [rsp + 0x7c], r12d
mov qword [rsp + 0x70], rax
lea rdx, [0x1400d08a8]
lea rax, [rsp + 0x60]
inc edi
mov r9d, 2
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x78], edi
call fcn.140001460
mov rcx, qword [0x1400f8a70]
mov r8, r14
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14002a2aa
test byte [0x1400f8b3e], 0x10
je 0x14002a1e9
mov dword [rsp + 0x28], r8d
lea r9, str.Invalid_OfferedVersion_loaded_from_storage__0x_x_at_position__d
mov dword [rsp + 0x20], edx
lea rcx, [rbp - 0x70]
mov rdi, 0xffffffffffffffff
mov edx, 0x80
mov r8, rdi
call fcn.1400015d0
lea rax, [rbp - 0x70]
inc rdi
cmp byte [rax + rdi], r12b
jne 0x14002a235
jmp 0x14002a1b9
test byte [0x1400f8b3e], 0x10
je 0x14002a1e9
mov dword [rsp + 0x28], r8d
lea r9, str.Invalid_FullyDeployedVersion_loaded_from_storage__0x_x_at_position__d
mov dword [rsp + 0x20], edx
lea rcx, [rbp - 0x70]
mov rdi, 0xffffffffffffffff
mov edx, 0x80
mov r8, rdi
call fcn.1400015d0
lea rax, [rbp - 0x70]
nop dword [rax + rax]
inc rdi
cmp byte [rax + rdi], r12b
jne 0x14002a280
jmp 0x14002a1b9
mov r8, qword [rbx + 8]
test r8, r8
je 0x14002a2aa
mov rcx, qword [0x1400f8a70]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbx + 8], r12
movzx eax, word [rbx + 0x80]
movabs rdx, 0x100000000
movzx ecx, word [rbx + 0x82]
mov r14, qword [rsp + 0x128]
mov rdi, qword [rsp + 0x170]
mov word [rsp + 0x40], ax
mov word [rsp + 0x3c], cx
test qword [rbx], rdx
jne 0x14002a31f
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x48]
lea rax, [rsp + 0x40]
mov dword [rsp + 0x30], 2
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.MinimumMtu
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
movzx eax, word [rsp + 0x40]
movzx ecx, word [rsp + 0x3c]
mov rdx, qword [rbx]
bt rdx, 0x21
jb 0x14002a36a
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x48]
lea rax, [rsp + 0x3c]
mov dword [rsp + 0x30], 2
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.MaximumMtu
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov rdx, qword [rbx]
movzx eax, word [rsp + 0x40]
movzx ecx, word [rsp + 0x3c]
mov r9d, 0x5dc
mov r8d, 0x4e0
cmp cx, r9w
jbe 0x14002a381
mov ecx, r9d
jmp 0x14002a38b
cmp cx, r8w
jae 0x14002a390
movzx ecx, r8w
mov word [rsp + 0x3c], cx
cmp ax, r9w
jbe 0x14002a39b
mov eax, r9d
jmp 0x14002a3a5
cmp ax, r8w
jae 0x14002a3aa
movzx eax, r8w
mov word [rsp + 0x40], ax
cmp ax, cx
ja 0x14002a3bd
mov word [rbx + 0x82], cx
mov word [rbx + 0x80], ax
bt rdx, 0x23
jb 0x14002a3fa
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x28], rcx
lea rax, [rbx + 0x8d]
mov rcx, qword [rsi]
lea r9, [rsp + 0x48]
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.MtuDiscoveryMissingProbeCount
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
movabs rax, 0x400000000
test qword [rbx], rax
jne 0x14002a43c
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 8
mov qword [rsp + 0x28], rcx
lea rax, [rbx + 0x28]
mov rcx, qword [rsi]
lea r9, [rsp + 0x48]
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.MtuDiscoverySearchCompleteTimeoutUs
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
movabs rax, 0x1000000000
test qword [rbx], rax
jne 0x14002a499
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x48]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], 0x64
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.MaxBindingStatelessOperations
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rsp + 0x34]
cmp eax, 0xffff
jae 0x14002a499
mov word [rbx + 0x84], ax
movabs rax, 0x2000000000
test qword [rbx], rax
jne 0x14002a4f6
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x48]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], 0x64
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.StatelessOperationExpirationMs
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rsp + 0x34]
cmp eax, 0xffff
jae 0x14002a4f6
mov word [rbx + 0x86], ax
test qword [rbx], r13
mov r13, qword [rsp + 0x130]
jne 0x14002a54c
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x48]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], r12d
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.CongestionControlAlgorithm
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rsp + 0x34]
cmp eax, 2
jae 0x14002a54c
mov word [rbx + 0x88], ax
movabs rax, 0x8000000000
test qword [rbx], rax
jne 0x14002a59e
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x48]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], 0x4e20
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.DestCidUpdateIdleTimeoutMs
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rsp + 0x34]
mov dword [rbx + 0x70], eax
movabs rax, 0x10000000000
test qword [rbx], rax
jne 0x14002a5fc
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x48]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], r12d
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.GreaseQuicBitEnabled
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rsp + 0x34]
neg eax
movzx eax, byte [r15]
sbb cl, cl
and al, 0x7f
and cl, 0x80
or cl, al
mov byte [r15], cl
mov r15, qword [rsp + 0x120]
movabs rax, 0x20000000000
test qword [rbx], rax
jne 0x14002a665
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x48]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], r12d
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.EcnEnabled
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp dword [rsp + 0x34], r12d
movzx eax, byte [rbx + 0x8c]
setne cl
and al, 0xfe
or cl, al
mov byte [rbx + 0x8c], cl
movabs rax, 0x40000000000
test qword [rbx], rax
jne 0x14002a6c9
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x48]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], r12d
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.HyStartEnabled
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rsp + 0x34]
neg eax
movzx eax, byte [rbx + 0x8c]
sbb cl, cl
and al, 0xfd
and cl, 2
or cl, al
mov byte [rbx + 0x8c], cl
movabs rax, 0x80000000000
test qword [rbx], rax
jne 0x14002a72d
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x48]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], r12d
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.EncryptionOffloadAllowed
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rsp + 0x34]
neg eax
movzx eax, byte [rbx + 0x8c]
sbb cl, cl
and al, 0xfb
and cl, 4
or cl, al
mov byte [rbx + 0x8c], cl
movabs rax, 0x100000000000
test qword [rbx], rax
jne 0x14002a791
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x48]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], r12d
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.ReliableResetEnabled
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rsp + 0x34]
neg eax
movzx eax, byte [rbx + 0x8c]
sbb cl, cl
and al, 0xf7
and cl, 8
or cl, al
mov byte [rbx + 0x8c], cl
movabs rax, 0x200000000000
test qword [rbx], rax
jne 0x14002a7f5
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x48]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], r12d
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.OneWayDelayEnabled
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rsp + 0x34]
neg eax
movzx eax, byte [rbx + 0x8c]
sbb cl, cl
and al, 0xef
and cl, 0x10
or cl, al
mov byte [rbx + 0x8c], cl
movabs rax, 0x400000000000
test qword [rbx], rax
jne 0x14002a859
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x48]
lea rax, [rsp + 0x34]
mov dword [rsp + 0x34], r12d
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.NetStatsEventEnabled
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [rsp + 0x34]
neg eax
movzx eax, byte [rbx + 0x8c]
sbb cl, cl
and al, 0xdf
and cl, 0x20
or cl, al
mov byte [rbx + 0x8c], cl
mov rcx, qword [rbp + 0x10]
xor rcx, rsp
call fcn.14007f5b0
add rsp, 0x138
pop r12
pop rsi
pop rbx
pop rbp
ret