Function at 0x180011d50
Capabilities:
Generate random numbers via winapi

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xb0]
sub rsp, 0x1b0
mov rax, qword [0x180066008]
xor rax, rsp
mov qword [rbp + 0xa0], rax
xor r12d, r12d
mov qword [rsp + 0x58], rdx
mov eax, r12d
mov byte [rsp + 0x50], r9b
mov qword [rsp + 0x38], rax
mov rbx, rcx
movzx ecx, word [rcx + 0xf2]
mov r10d, r8d
movzx r8d, word [0x180067d6e]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x48]
mov qword [rsp + 0x40], rax
movzx eax, word [0x180067d70]
and eax, ecx
mov dword [rsp + 0x34], r12d
cdq
mov word [rsp + 0x30], r12w
idiv r8d
mov rax, qword [rbx + 0x48]
mov word [rsp + 0x32], dx
mov r15d, edx
test rax, rax
je 0x180011e03
test byte [rax + 0x10], 2
je 0x180011e03
lea eax, [rdx - 2]
add ax, r8w
lea ecx, [rdx - 2]
cmp dx, 2
cmovae ax, cx
movzx r15d, ax
mov word [rsp + 0x32], ax
test r9b, r9b
je 0x180011e1a
test byte [0x180067c73], 8
je 0x180011e57
lea r9, str.Recv__u_deferred_UDP_datagrams
jmp 0x180011e2a
test byte [0x180067c73], 8
je 0x180011e57
lea r9, str.Recv__u_UDP_datagrams
mov r8, 0xffffffffffffffff
mov dword [rsp + 0x20], r10d
mov edx, 0x80
lea rcx, [rbp - 0x60]
call fcn.180042088
lea r9, [rbp - 0x60]
mov r8, rbx
lea rdx, [0x180056c18]
call fcn.180041678
mov rax, qword [rsp + 0x58]
xor sil, sil
mov r13, r12
mov r14, rax
test rax, rax
je 0x1800124f0
nop
lea rdi, [rax]
mov rdx, r14
mov rax, qword [rax]
mov rcx, rbx
mov qword [r14], r12
and byte [rdi + 0x55], 0xfe
mov qword [rsp + 0x58], rax
call fcn.18002891c
mov r15, rax
test rax, rax
jne 0x180011ead
lea r8, str.Max_paths_already_tracked
mov rcx, rbx
lea rdx, [r14 + 0x28]
call fcn.18001d760
jmp 0x180012066
cmp r15, r13
je 0x180011ee4
test sil, sil
je 0x180011ee1
lea rax, [rsp + 0x30]
movzx r8d, sil
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x60]
lea rax, [rbp + 0x20]
mov rdx, r13
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.180010d50
xor sil, sil
mov r13, r15
cmp byte [rsp + 0x50], r12b
jne 0x180011f30
movzx r9d, word [r14 + 0x18]
add r9, qword [rbx + 0xba0]
mov qword [rbx + 0xba0], r9
test byte [0x180067c72], 2
je 0x180011f0f
mov r8, rbx
call fcn.180044cc0
test byte [r13 + 1], 0x10
jne 0x180011f30
movzx eax, word [r14 + 0x18]
mov rdx, r13
mov rcx, rbx
lea r8d, [rax + rax*2]
add r8d, dword [r13 + 0x60]
call fcn.180023ca0
nop
inc qword [rbx + 0xb68]
test byte [rdi + 0x54], 2
jne 0x180011f4f
movzx eax, word [r14 + 0x18]
sub ax, word [rdi + 0x30]
add ax, word [r14 + 0x10]
mov word [rdi + 0x48], ax
movzx eax, sil
lea r15, [rbp + 0x20]
shl rax, 4
lea rdx, [r14 + 0x28]
add r15, rax
mov rcx, rbx
mov r8, r15
call fcn.1800126d0
test al, al
jne 0x180011f9d
test byte [rdi + 0x55], 1
jne 0x18001205f
inc qword [rbx + 0xb78]
movzx edx, byte [rdi + 0x54]
test dl, 4
jne 0x180012066
test dl, 8
je 0x180012066
jmp 0x180012035
movzx edx, byte [rdi + 0x54]
test dl, 4
jne 0x180011feb
test sil, sil
je 0x180011feb
lea rax, [rsp + 0x30]
movzx r8d, sil
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x60]
lea rax, [rbp + 0x20]
mov rdx, r13
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.180010d50
mov r8d, setsockopt
lea rdx, [rbp + 0x20]
mov rcx, r15
call fcn.18002a1d0
movzx edx, byte [rdi + 0x54]
xor sil, sil
movzx eax, sil
inc sil
mov qword [rsp + rax*8 + 0x60], r14
test dl, 4
je 0x180012002
cmp sil, 8
jb 0x180012066
lea rax, [rsp + 0x30]
movzx r8d, sil
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x60]
lea rax, [rbp + 0x20]
mov rdx, r13
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.180010d50
movzx edx, byte [rdi + 0x54]
xor sil, sil
test dl, 4
jne 0x180012066
and byte [rdi + 0x55], 0xf0
and dl, 0x45
movzx eax, word [rdi + 0x48]
add qword [rdi + 0x30], rax
mov rcx, qword [rdi + 0x30]
mov byte [rdi + 0x54], dl
sub rcx, qword [r14 + 0x10]
movzx eax, word [r14 + 0x18]
cmp rcx, rax
jl 0x180011f30
jmp 0x180012066
dec qword [rbx + 0xb68]
test byte [rdi + 0x55], 1
jne 0x1800120f2
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0x34]
inc ecx
mov qword [rsp + 0x40], r14
mov dword [rsp + 0x34], ecx
mov qword [rax], r14
and byte [r14 + 0x1d], 0xfd
cmp ecx, 0x20
jne 0x1800120e8
test sil, sil
je 0x1800120c0
lea rax, [rsp + 0x30]
movzx r8d, sil
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x60]
lea rax, [rbp + 0x20]
mov rdx, r13
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.180010d50
xor sil, sil
mov rcx, qword [rsp + 0x48]
call fcn.18001b880
mov rax, r12
mov dword [rsp + 0x34], r12d
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x48]
mov qword [rsp + 0x40], rax
jmp 0x1800120f2
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x58]
mov r14, rax
test rax, rax
jne 0x180011e70
test sil, sil
je 0x18001212f
lea rax, [rsp + 0x30]
movzx r8d, sil
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x60]
lea rax, [rbp + 0x20]
mov rdx, r13
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.180010d50
cmp byte [rsp + 0x30], r12b
je 0x18001240a
movzx eax, byte [rbx + 0xe0]
and al, 8
je 0x180012165
mov rdi, qword [rbx + 0x500]
test rdi, rdi
je 0x18001215f
mov rcx, qword [rbx + 0x70]
test rcx, rcx
je 0x180012176
cmp rcx, rdi
jae 0x180012176
mov rdi, qword [rbx + 0x70]
jmp 0x180012169
mov rdi, qword [rbx + 0x68]
test rdi, rdi
je 0x1800123e3
test al, al
je 0x1800121b0
imul ecx, dword [rbx + 0x548], 0xfa
mov eax, dword [rbx + 0x184]
add ecx, dword [rbx + 0x190]
lea ecx, [rax + rcx*4]
lea eax, [rcx + rcx*2]
mov ecx, dword [rbx + 0x8c]
cmp eax, ecx
cmovae ecx, eax
mov eax, 0x10624dd3
mul ecx
shr edx, 6
mov eax, edx
cmp rdi, rax
cmovb rdi, rax
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [rsp + 0x58]
xor edx, edx
mov rax, rcx
mov r14d, 6
shr rax, 0x20
imul rax, rax, 0xf4240
mov ecx, ecx
div qword [0x180067c48]
shl rdx, 0x20
mov r15, rax
imul rax, rcx, 0xf4240
imul rcx, rdi, 0x3e8
add rax, rdx
shl r15, 0x20
xor edx, edx
div qword [0x180067c48]
mov edx, r12d
add r15, rax
add r15, rcx
mov ecx, r12d
mov r8d, ecx
mov r9d, ecx
lea rax, [r8 + 0x38]
add rax, rax
cmp dword [rbx + rax*8], 4
cmovne r9d, edx
cmp ecx, r14d
jae 0x180012239
add r8, r8
cmp r15, qword [rbx + r8*8 + 0x388]
cmovb r14d, ecx
lea r8d, [rcx + 1]
lea rax, [r8 + 0x38]
mov edx, r8d
add rax, rax
mov r10d, r8d
cmp dword [rbx + rax*8], 4
cmovne r10d, r9d
cmp r8d, r14d
jae 0x180012266
add rdx, rdx
cmp r15, qword [rbx + rdx*8 + 0x388]
cmovb r14d, r8d
lea r8d, [rcx + 2]
lea rax, [r8 + 0x38]
mov edx, r8d
add rax, rax
mov r9d, r8d
cmp dword [rbx + rax*8], 4
cmovne r9d, r10d
cmp r8d, r14d
jae 0x180012293
add rdx, rdx
cmp r15, qword [rbx + rdx*8 + 0x388]
cmovb r14d, r8d
lea r8d, [rcx + 3]
lea rax, [r8 + 0x38]
mov edx, r8d
add rax, rax
mov r10d, r8d
cmp dword [rbx + rax*8], 4
cmovne r10d, r9d
cmp r8d, r14d
jae 0x1800122c0
add rdx, rdx
cmp r15, qword [rbx + rdx*8 + 0x388]
cmovb r14d, r8d
lea r8d, [rcx + 4]
lea rax, [r8 + 0x38]
mov edx, r8d
add rax, rax
mov r11d, r8d
cmp dword [rbx + rax*8], 4
cmovne r11d, r10d
cmp r8d, r14d
jae 0x1800122ed
add rdx, rdx
cmp r15, qword [rbx + rdx*8 + 0x388]
cmovb r14d, r8d
lea r9d, [rcx + 5]
lea rax, [r9 + 0x38]
mov r8d, r9d
add rax, rax
mov edx, r9d
cmp dword [rbx + rax*8], 4
cmovne edx, r11d
cmp r9d, r14d
jae 0x18001231a
add r8, r8
cmp r15, qword [rbx + r8*8 + 0x388]
cmovb r14d, r9d
add ecx, 6
cmp ecx, 6
jb 0x180012210
cmp r14d, edx
jae 0x180012370
sub edx, r14d
mov esi, r14d
mov r8d, edx
lea rcx, [rbx + 0x390]
shl rsi, 4
lea rdx, [rbx + 0x380]
add rdx, rsi
shl r8, 4
add rcx, rsi
mov edi, r14d
call fcn.18002a1d0
lea rax, [rdi + 0x38]
mov qword [rsi + rbx + 0x388], r15
add rax, rax
mov dword [rbx + rax*8], 4
jmp 0x1800123cc
mov ecx, edx
lea eax, [rdx + 1]
shl rcx, 4
add rcx, rbx
cmp r14d, eax
jbe 0x1800123c2
mov r8d, r14d
sub r8d, edx
lea rdx, [rcx + 0x390]
dec r8d
add rcx, 0x380
shl r8, 4
call fcn.18002a1d0
lea eax, [r14 - 1]
mov ecx, eax
add rax, 0x38
add rax, rax
add rcx, rcx
mov dword [rbx + rax*8], 4
mov qword [rbx + rcx*8 + 0x388], r15
jmp 0x1800123cc
mov qword [rcx + 0x388], r15
mov r14d, edx
test r14d, r14d
jne 0x1800123f0
mov rcx, qword [rbx + 0x40]
mov rdx, rbx
add rcx, 0x18
call fcn.18000c170
jmp 0x1800123f0
mov edx, 4
mov rcx, rbx
call fcn.18000c060
mov eax, dword [rbx + 0xa8]
test eax, eax
je 0x18001240a
mov r8d, eax
mov edx, 3
mov rcx, rbx
call fcn.18000bd60
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x1800124ea
mov rdi, r12
mov r14, rax
mov r15d, 0x100
nop dword [rax]
nop dword [rax + rax]
mov r14, qword [r14 + 0x20]
mov rax, qword [rax]
mov qword [rsp + 0x38], rax
cmp rdi, r14
jne 0x180012446
inc r12d
jmp 0x18001249b
test rdi, rdi
je 0x180012492
neg r12d
mov eax, r12d
lock xadd dword [rdi + 8], eax
add eax, r12d
jne 0x18001248d
mov rsi, qword [rdi]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_QueryDepthSList]
cmp ax, r15w
jb 0x180012481
mov rcx, qword [0x180069238]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x18001248d
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_InterlockedPushEntrySList]
mov rax, qword [rsp + 0x38]
mov rdi, r14
mov r12d, 1
mov r14, rax
test rax, rax
jne 0x180012430
test rdi, rdi
je 0x1800124ea
neg r12d
mov eax, r12d
lock xadd dword [rdi + 8], eax
add eax, r12d
jne 0x1800124ea
mov rsi, qword [rdi]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_QueryDepthSList]
cmp ax, r15w
jb 0x1800124de
mov rcx, qword [0x180069238]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1800124ea
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_InterlockedPushEntrySList]
movzx r15d, word [rsp + 0x32]
cmp dword [rbx], 4
jne 0x180012556
cmp qword [rbx + 0xb90], 0
jne 0x180012556
test byte [rbx + 0xe0], 0x10
jne 0x180012556
test byte [0x180067c73], 2
je 0x180012540
lea r9, str.Aborting_connection_with_invalid_initial_packets
mov edx, 0x80
mov r8, 0xffffffffffffffff
lea rcx, [rbp - 0x60]
call fcn.180042088
lea r9, [rbp - 0x60]
mov r8, rbx
lea rdx, [0x180056c38]
call fcn.180041678
xor r9d, r9d
mov r8, 0xffffffff80004004
mov rcx, rbx
lea edx, [r9 + 0x13]
call fcn.180002830
movzx edi, byte [rbx + 0xf6]
sub dil, 1
je 0x1800125d4
movzx eax, dil
add rax, 2
lea rsi, [rax + rax*8]
shl rsi, 4
add rsi, rbx
test byte [rsi + 1], 8
jne 0x1800125c7
test byte [0x180067c73], 4
je 0x1800125bb
movzx eax, byte [rsi]
lea r9, str.Removing_invalid_path__hhu_
mov edx, 0x80
mov dword [rsp + 0x20], eax
mov r8, 0xffffffffffffffff
lea rcx, [rbp - 0x60]
call fcn.180042088
lea r9, [rbp - 0x60]
mov r8, rbx
lea rdx, [0x180056cc8]
call fcn.180041678
movzx edx, dil
mov rcx, rbx
call fcn.180049d90
sub rsi, 0x90
add dil, 0xff
jne 0x180012576
test byte [rbx + 0xe2], 0x40
jne 0x18001264e
test byte [rbx + 0xe0], 8
je 0x18001264e
cmp byte [rsp + 0x31], 0
je 0x18001264e
mov rax, qword [rbx + 0x48]
test byte [rax + 0x10], 2
je 0x18001260d
movzx ecx, word [0x180067d6e]
xor edx, edx
movzx eax, r15w
add eax, 2
div ecx
movzx r15d, dx
mov r9d, 2
lea rdx, [rsp + 0x50]
mov r8d, r9d
xor ecx, ecx
call qword [sym.imp.bcrypt.dll_BCryptGenRandom]
movzx eax, word [0x180067d70]
mov dl, 1
not ax
mov rcx, rbx
and ax, word [rsp + 0x50]
or ax, r15w
mov word [rbx + 0xf2], ax
call fcn.180016568
or byte [rbx + 0xe2], 0x40
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.180028c10
mov rbx, qword [rsp + 0x208]
add rsp, 0x1b0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret