Function at 0x14016a090
Capabilities:
Generate random numbers via rtlgenrandom
Generate random numbers via winapi

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x8d8
movaps xmmword [rsp + 0x8c0], xmm6
mov rbx, r8
mov r12, rdx
mov r15, rcx
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movaps xmmword [rsp + 0x450], xmm1
movaps xmmword [rsp + 0x440], xmm0
mov qword [rsp + 0x108], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0x110], xmm0
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x160], 1
lea rax, [0x14028e3d0]
mov qword [rsp + 0x168], rax
mov qword [rsp + 0x170], 1
lea rax, [0x14028e410]
mov qword [rsp + 0x178], rax
mov word [rsp + 0x1a0], 0
movups xmmword [rsp + 0x180], xmm0
mov qword [rsp + 0x190], 0
mov qword [rsp + 0x460], 0
mov qword [rsp + 0x650], 0
mov rcx, qword [0x14031a128]
test rcx, rcx
jne 0x14016a179
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14016b4e4
mov rcx, rax
mov qword [0x14031a128], rax
mov r8d, 0xc0
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x14016b4e4
xorps xmm0, xmm0
movaps xmmword [rsp + 0x2a0], xmm0
mov qword [rsp + 0x2b0], rax
movaps xmm6, xmmword [0x140220350]
movups xmmword [rsp + 0x2b8], xmm6
mov qword [rsp + 0x2c8], 0x4000
mov rcx, qword [0x14031a128]
test rcx, rcx
jne 0x14016a1e1
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14016b4f5
mov rcx, rax
mov qword [0x14031a128], rax
mov r8d, 0xc0
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x14016b4f5
xorps xmm0, xmm0
movaps xmmword [rsp + 0x340], xmm0
mov qword [rsp + 0x350], rax
movups xmmword [rsp + 0x358], xmm6
mov qword [rsp + 0x368], 0x10000
mov rcx, qword [0x14031a128]
test rcx, rcx
jne 0x14016a242
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14016b506
mov rcx, rax
mov qword [0x14031a128], rax
mov r8d, 0xc0
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x14016b506
xorps xmm0, xmm0
movaps xmmword [rsp + 0x5f0], xmm0
mov word [rsp + 0x638], 0xa
mov byte [rsp + 0x63c], 0
movups xmm1, xmmword [rsp + 0x160]
movups xmm2, xmmword [rsp + 0x170]
movups xmm3, xmmword [rsp + 0x180]
movups xmm4, xmmword [rsp + 0x190]
movaps xmmword [rsp + 0x500], xmm1
movaps xmmword [rsp + 0x510], xmm2
movaps xmmword [rsp + 0x520], xmm3
movaps xmmword [rsp + 0x530], xmm4
mov rcx, qword [rsp + 0x1a0]
mov qword [rsp + 0x540], rcx
mov qword [rsp + 0x548], 2
movups xmm1, xmmword [rsp + 0x460]
movups xmmword [rsp + 0x558], xmm1
mov rcx, qword [rsp + 0x470]
mov qword [rsp + 0x568], rcx
mov byte [rsp + 0x63d], 1
mov dword [rsp + 0x63e], 0
mov dword [rsp + 0x641], 0
movups xmm1, xmmword [rsp + 0x650]
movaps xmmword [rsp + 0x570], xmm1
mov rcx, qword [rsp + 0x660]
mov qword [rsp + 0x580], rcx
mov qword [rsp + 0x588], 0x4000
movaps xmm1, xmmword [rsp + 0x2a0]
movaps xmm2, xmmword [rsp + 0x2b0]
movaps xmm3, xmmword [rsp + 0x2c0]
movaps xmmword [rsp + 0x590], xmm1
movaps xmmword [rsp + 0x5a0], xmm2
movaps xmmword [rsp + 0x5b0], xmm3
movaps xmm1, xmmword [rsp + 0x340]
movaps xmm2, xmmword [rsp + 0x350]
movaps xmm3, xmmword [rsp + 0x360]
movaps xmmword [rsp + 0x5c0], xmm1
movaps xmmword [rsp + 0x5d0], xmm2
movaps xmmword [rsp + 0x5e0], xmm3
mov qword [rsp + 0x600], rax
movups xmmword [rsp + 0x608], xmm6
mov qword [rsp + 0x618], 0x10000
mov qword [rsp + 0x620], 0
cmp qword [r12 + 0x70], 0
je 0x14016a3e6
mov rcx, qword [r12 + 0x78]
lea rax, [rcx - 0x20]
cmp rax, 0x3fe5
ja 0x14016a565
add rcx, 0xfffffffffffffffb
jmp 0x14016a3eb
mov ecx, 0x4000
mov qword [rsp + 0x588], rcx
mov qword [rsp + 0x4d0], 0
mov byte [rsp + 0x4d8], 0
mov qword [rsp + 0x4e0], 2
lea rax, [rsp + 0x500]
mov qword [rsp + 0x4f0], rax
lea rax, [rsp + 0x4d0]
mov qword [rsp + 0x4f8], rax
movups xmm1, xmmword [rbx]
movups xmm2, xmmword [rbx + 0x10]
movaps xmmword [rsp + 0xe0], xmm2
movaps xmmword [rsp + 0xd0], xmm1
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x100], rax
movups xmm1, xmmword [rsp + 0x108]
movaps xmmword [rsp + 0xf0], xmm1
mov qword [rsp + 0xc0], r12
mov qword [rsp + 0x420], 1
movups xmmword [rsp + 0x428], xmm0
mov byte [rsp + 0x438], 0
mov rax, qword [r12 + 0x88]
mov rcx, qword [rax + 0x10]
add rcx, 0xf
and rcx, 0xfffffffffffffff0
add rcx, qword [r12 + 0x80]
call qword [rax + 0x28]
test al, al
je 0x14016a4b9
mov byte [rsp + 0x438], 1
mov rsi, qword [r12 + 0x60]
mov rbx, qword [rsi + 0x10]
add rbx, 0xf
and rbx, 0xfffffffffffffff0
add rbx, qword [r12 + 0x58]
lea rcx, [rsp + 0x160]
lea r8, [rsp + 0xd0]
mov rdx, rbx
call qword [rsi + 0x50]
cmp qword [rsp + 0x160], 0
je 0x14016a56f
mov rax, qword [rsp + 0x1c0]
mov qword [rsp + 0x300], rax
movups xmm0, xmmword [rsp + 0x1b0]
movaps xmmword [rsp + 0x2f0], xmm0
movups xmm0, xmmword [rsp + 0x1a0]
movaps xmmword [rsp + 0x2e0], xmm0
movups xmm0, xmmword [rsp + 0x160]
movups xmm1, xmmword [rsp + 0x170]
movups xmm2, xmmword [rsp + 0x180]
movups xmm3, xmmword [rsp + 0x190]
movaps xmmword [rsp + 0x2d0], xmm3
movaps xmmword [rsp + 0x2c0], xmm2
movaps xmmword [rsp + 0x2b0], xmm1
movaps xmmword [rsp + 0x2a0], xmm0
mov dil, 2
jmp 0x14016a5ce
mov r14b, 0x13
xor edi, edi
jmp 0x14016b086
lea rcx, [rsp + 0x160]
lea r8, [rsp + 0xd0]
mov rdx, rbx
call qword [rsi + 0x38]
movzx edi, byte [rsp + 0x1e8]
cmp dil, 2
je 0x14016a75b
lea rcx, [rsp + 0x2a0]
lea rdx, [rsp + 0x160]
mov r8d, 0x88
call sub.msvcrt.dll_memcpy
mov eax, dword [rsp + 0x1e9]
mov ecx, dword [rsp + 0x1ec]
mov dword [rsp + 0x90], eax
mov dword [rsp + 0x93], ecx
lea rcx, [rsp + 0x340]
lea rdx, [rsp + 0x2a0]
mov r8d, 0x88
call sub.msvcrt.dll_memcpy
mov byte [rsp + 0x3c8], dil
mov eax, dword [rsp + 0x90]
mov ecx, dword [rsp + 0x93]
mov dword [rsp + 0x3c9], eax
mov dword [rsp + 0x3cc], ecx
mov qword [rsp + 0x460], 0
mov rax, qword [0x14021e0c0]
lea rcx, [rsp + 0x460]
call rax
mov rsi, qword [rsp + 0x460]
movabs rbp, 0x19db1ded53e8000
mov rax, rsi
sub rax, rbp
neg rax
movabs rcx, 0xfe624e212ac18000
add rcx, rsi
cmp rsi, rbp
cmovl rcx, rax
movabs rdx, 0xd6bf94d5e57a42bd
mov rax, rcx
mul rdx
cmp rsi, rbp
jge 0x14016a687
cmp dil, 2
lea rax, [rsp + 0x348]
lea rcx, [rsp + 0x370]
jmp 0x14016a752
mov rbx, rdx
shr rbx, 0x17
imul eax, ebx, 0x989680
sub ecx, eax
imul r13d, ecx, 0x64
mov eax, r13d
shr eax, 9
imul rax, rax, 0x44b83
shr rax, 0x27
imul eax, eax, 0x3b9aca00
sub r13d, eax
lea rcx, [rsp + 0x160]
lea rdx, [rsp + 0x2a0]
mov r8d, 0x88
call sub.msvcrt.dll_memcpy
mov byte [rsp + 0x1e8], dil
mov eax, dword [rsp + 0x90]
mov ecx, dword [rsp + 0x93]
mov dword [rsp + 0x1e9], eax
mov dword [rsp + 0x1ec], ecx
mov qword [rsp + 0x1f0], rbx
mov dword [rsp + 0x1f8], r13d
cmp dil, 2
lea rax, [rsp + 0x168]
lea rcx, [rsp + 0x190]
mov rdx, rcx
cmove rdx, rax
mov edx, dword [rdx + 0x50]
test edx, edx
je 0x14016aac1
cmp dil, 2
mov rbp, rcx
cmove rbp, rax
mov edx, edx
add rdx, qword [rbp + 0x30]
mov rbp, 0xffffffffffffffff
cmovae rbp, rdx
cmp rbp, rbx
jae 0x14016aac1
cmp dil, 2
cmove rcx, rax
call fcn.140165450
mov dword [rsp + 0x6e8], 0x3b9aca00
mov r13d, 0x3b9aca00
cmp qword [r12 + 0x98], 0
je 0x14016aaf3
mov rax, qword [r12 + 0x10]
mov rcx, qword [r12 + 0x20]
shl rcx, 4
xor edi, edi
xor edx, edx
nop dword [rax]
cmp rcx, rdx
je 0x14016aaf5
cmp qword [rax + rdx], 0
lea rdx, [rdx + 0x10]
je 0x14016a790
mov rax, qword [r12 + 0x60]
mov rcx, qword [rax + 0x10]
add rcx, 0xf
and rcx, 0xfffffffffffffff0
add rcx, qword [r12 + 0x58]
lea rdx, [rsp + 0xd0]
call qword [rax + 0x28]
mov rcx, qword [r12 + 0x28]
mov rbx, qword [r12 + 0x38]
cmp ax, 0xb
jne 0x14016ace2
test rbx, rbx
je 0x14016b517
mov rdi, qword [rcx]
mov r14, qword [rdi]
movzx eax, byte [0x14031a1d8]
cmp al, 2
je 0x14016a7f8
call fcn.140146540
mov rsi, qword [r14]
xorps xmm0, xmm0
movups xmmword [rsp + 0x188], xmm0
movups xmmword [rsp + 0x178], xmm0
movups xmmword [rsp + 0x168], xmm0
mov qword [rsp + 0x160], rsi
mov r9, qword [rsi + 8]
cmp r9, 0x30
ja 0x14016b531
lea rbx, [rsp + 0x168]
lea rdx, [0x14028fb90]
lea rcx, [rsp + 0x400]
mov r8, rbx
call qword [rsi + 0x18]
test al, al
jne 0x14016ac4b
mov rsi, qword [rsp + 0x160]
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmm2, xmmword [rbx + 0x20]
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0xa0], xmm1
movaps xmmword [rsp + 0xb0], xmm2
test rsi, rsi
je 0x14016ac4b
movaps xmm0, xmmword [rsp + 0x90]
movaps xmm1, xmmword [rsp + 0xa0]
movaps xmm2, xmmword [rsp + 0xb0]
movups xmmword [rsp + 0x2c8], xmm2
movups xmmword [rsp + 0x2b8], xmm1
movups xmmword [rsp + 0x2a8], xmm0
mov qword [rsp + 0x2d8], r14
mov qword [rsp + 0x2a0], rsi
mov r9, qword [rsi]
xorps xmm0, xmm0
movups xmmword [rsp + 0x1b8], xmm0
movups xmmword [rsp + 0x1a8], xmm0
movups xmmword [rsp + 0x198], xmm0
movups xmmword [rsp + 0x188], xmm0
movups xmmword [rsp + 0x178], xmm0
movups xmmword [rsp + 0x168], xmm0
mov byte [rsp + 0x1c8], 0
mov qword [rsp + 0x160], r9
cmp r9, 0x62
jae 0x14016b53f
lea rcx, [rsp + 0x168]
lea r8, [rsp + 0x2a0]
mov rdx, r9
call qword [rsi + 0x20]
test al, al
jne 0x14016ac4b
movups xmm0, xmmword [rsp + 0x1c0]
movaps xmmword [rsp + 0x3a0], xmm0
movups xmm0, xmmword [rsp + 0x1b0]
movaps xmmword [rsp + 0x390], xmm0
movups xmm0, xmmword [rsp + 0x1a0]
movaps xmmword [rsp + 0x380], xmm0
movups xmm0, xmmword [rsp + 0x160]
movups xmm1, xmmword [rsp + 0x170]
movups xmm2, xmmword [rsp + 0x180]
movups xmm3, xmmword [rsp + 0x190]
movaps xmmword [rsp + 0x370], xmm3
movaps xmmword [rsp + 0x360], xmm2
movaps xmmword [rsp + 0x350], xmm1
movaps xmmword [rsp + 0x340], xmm0
mov rax, qword [rsp + 0x2d8]
mov qword [rsp + 0x298], rax
movzx esi, byte [rsp + 0x2a0]
mov eax, dword [rsp + 0x2a1]
mov ecx, dword [rsp + 0x2a4]
mov dword [rsp + 0x73], ecx
mov dword [rsp + 0x70], eax
movups xmm6, xmmword [rsp + 0x2a8]
mov r14, qword [rsp + 0x2b8]
movups xmm0, xmmword [rsp + 0x2c0]
movups xmm1, xmmword [rsp + 0x2d0]
movaps xmmword [rsp + 0x130], xmm1
movaps xmmword [rsp + 0x120], xmm0
mov byte [rsp + 0x160], 0xf
lea rcx, [rsp + 0x160]
call fcn.140147a10
mov eax, dword [rsp + 0x70]
mov ecx, dword [rsp + 0x73]
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x63], ecx
movaps xmm0, xmmword [rsp + 0x120]
movaps xmm1, xmmword [rsp + 0x130]
movaps xmmword [rsp + 0x740], xmm0
movaps xmmword [rsp + 0x750], xmm1
movaps xmm0, xmmword [rsp + 0x340]
movaps xmm1, xmmword [rsp + 0x350]
movaps xmm2, xmmword [rsp + 0x360]
movaps xmm3, xmmword [rsp + 0x370]
movaps xmmword [rsp + 0x460], xmm0
movaps xmmword [rsp + 0x470], xmm1
movaps xmmword [rsp + 0x480], xmm2
movaps xmmword [rsp + 0x490], xmm3
movaps xmm0, xmmword [rsp + 0x380]
movaps xmmword [rsp + 0x4a0], xmm0
movaps xmm0, xmmword [rsp + 0x390]
movaps xmmword [rsp + 0x4b0], xmm0
movaps xmm0, xmmword [rsp + 0x3a0]
movaps xmmword [rsp + 0x4c0], xmm0
cmp r13d, 0x3b9aca00
jne 0x14016aafe
jmp 0x14016ab0c
lea rcx, [rsp + 0x650]
lea rdx, [rsp + 0x160]
mov r8d, 0x98
call sub.msvcrt.dll_memcpy
mov dword [rsp + 0x6e8], r13d
cmp qword [r12 + 0x98], 0
jne 0x14016a77b
xor edi, edi
cmp r13d, 0x3b9aca00
je 0x14016ab0c
cmp byte [rsp + 0x6d8], 2
jne 0x14016abdb
cmp qword [r12 + 0x98], 0
je 0x14016abc4
mov rax, qword [r12 + 0x10]
mov rcx, qword [r12 + 0x20]
shl rcx, 4
xor edx, edx
nop dword [rax + rax]
cmp rcx, rdx
je 0x14016abc4
cmp qword [rax + rdx], 0
lea rdx, [rdx + 0x10]
je 0x14016ab30
xorps xmm0, xmm0
movaps xmmword [rsp + 0x170], xmm0
movaps xmmword [rsp + 0x160], xmm0
lea rdx, [rsp + 0x160]
xor ecx, ecx
mov r8d, 0x20
mov r9d, 2
call sub.bcrypt.dll_BCryptGenRandom
mov ebx, eax
cmp eax, 0xc0000000
jb 0x14016ab9d
lea rcx, [rsp + 0x160]
mov edx, 0x20
call sub.ADVAPI32.dll_SystemFunction036
test al, al
jne 0x14016ab9d
cmp ebx, 0x80000000
jne 0x14016ac4b
movaps xmm0, xmmword [rsp + 0x160]
movaps xmm1, xmmword [rsp + 0x170]
movaps xmmword [rsp + 0x80], xmm1
movaps xmmword [rsp + 0x70], xmm0
mov ebp, 0x20
jmp 0x14016add1
xorps xmm0, xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
xor ebp, ebp
jmp 0x14016add1
cmp qword [rsp + 0x690], 0
je 0x14016ad8c
xorps xmm0, xmm0
movaps xmmword [rsp + 0x170], xmm0
movaps xmmword [rsp + 0x160], xmm0
lea rdx, [rsp + 0x160]
xor ecx, ecx
mov r8d, 0x20
mov r9d, 2
call sub.bcrypt.dll_BCryptGenRandom
mov ebx, eax
cmp eax, 0xc0000000
jb 0x14016ad23
lea rcx, [rsp + 0x160]
mov edx, 0x20
call sub.ADVAPI32.dll_SystemFunction036
test al, al
jne 0x14016ad23
cmp ebx, 0x80000000
je 0x14016ad23
cmp r13d, 0x3b9aca00
je 0x14016ac75
cmp byte [rsp + 0x6d8], 2
lea rax, [rsp + 0x658]
lea rcx, [rsp + 0x680]
cmove rcx, rax
call fcn.140165450
lock dec qword [r12]
jne 0x14016ac89
mov rcx, qword [rsp + 0xc0]
call fcn.14000b1b0
mov rbx, qword [rsp + 0xf0]
mov rax, qword [rsp + 0x100]
test rax, rax
je 0x14016acc2
imul rsi, rax, 0x38
mov rcx, rbx
nop word cs:[rax + rax]
lea rdi, [rcx + 0x38]
call fcn.1401498a0
mov rcx, rdi
add rsi, 0xffffffffffffffc8
jne 0x14016acb0
cmp qword [rsp + 0xf8], 0
je 0x14016b03f
mov rcx, qword [0x14031a128]
xor edx, edx
mov r8, rbx
jmp 0x14016b03a
test rbx, rbx
je 0x14016b517
cmp ax, 0xa
jne 0x14016ad66
lea rax, [rbx*8]
xor esi, esi
jmp 0x14016ad0d
add rsi, 8
cmp rax, rsi
je 0x14016a7d9
mov rdi, qword [rcx + rsi]
cmp word [rdi + 8], 0xa
jne 0x14016ad00
cmp word [rdi + 0xa], dx
jne 0x14016ad00
jmp 0x14016a7e5
movaps xmm0, xmmword [rsp + 0x160]
movaps xmm1, xmmword [rsp + 0x170]
movups xmmword [rsp + 0x670], xmm1
movups xmmword [rsp + 0x660], xmm0
mov qword [rsp + 0x658], 0x20
movaps xmmword [rsp + 0x400], xmm0
movaps xmmword [rsp + 0x410], xmm1
mov ebp, 0x20
jmp 0x14016adb4
lea rdx, [rbx*8]
xor esi, esi
mov rdi, qword [rcx + rsi]
cmp word [rdi + 8], ax
je 0x14016a7e5
add rsi, 8
cmp rdx, rsi
jne 0x14016ad70
jmp 0x14016a7d9
mov rbp, qword [rsp + 0x658]
movups xmm0, xmmword [rsp + 0x660]
movaps xmmword [rsp + 0x400], xmm0
movups xmm0, xmmword [rsp + 0x670]
movaps xmmword [rsp + 0x410], xmm0
movaps xmm0, xmmword [rsp + 0x400]
movaps xmm1, xmmword [rsp + 0x410]
movaps xmmword [rsp + 0x80], xmm1
movaps xmmword [rsp + 0x70], xmm0
mov rax, qword [r12 + 0xa8]
mov rcx, qword [rax + 0x10]
add rcx, 0xf
and rcx, 0xfffffffffffffff0
add rcx, qword [r12 + 0xa0]
call qword [rax + 0x40]
mov ebx, eax
movups xmm0, xmmword [rsp + 0x420]
movups xmm1, xmmword [rsp + 0x430]
movaps xmmword [rsp + 0x130], xmm1
movaps xmmword [rsp + 0x120], xmm0
mov qword [rsp + 0x340], rdi
mov byte [rsp + 0x348], sil
mov eax, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x63]
mov dword [rsp + 0x349], eax
mov dword [rsp + 0x34c], ecx
movups xmmword [rsp + 0x350], xmm6
mov qword [rsp + 0x360], r14
movaps xmm0, xmmword [rsp + 0x740]
movaps xmm1, xmmword [rsp + 0x750]
movups xmmword [rsp + 0x368], xmm0
movups xmmword [rsp + 0x378], xmm1
mov rax, qword [rsp + 0x298]
mov qword [rsp + 0x388], rax
movaps xmm0, xmmword [rsp + 0x460]
movaps xmm1, xmmword [rsp + 0x470]
movaps xmm2, xmmword [rsp + 0x480]
movaps xmm3, xmmword [rsp + 0x490]
movups xmmword [rsp + 0x390], xmm0
movups xmmword [rsp + 0x3a0], xmm1
movups xmmword [rsp + 0x3b0], xmm2
movups xmmword [rsp + 0x3c0], xmm3
movaps xmm0, xmmword [rsp + 0x4a0]
movups xmmword [rsp + 0x3d0], xmm0
movaps xmm0, xmmword [rsp + 0x4b0]
movups xmmword [rsp + 0x3e0], xmm0
movaps xmm0, xmmword [rsp + 0x4c0]
movups xmmword [rsp + 0x3f0], xmm0
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x150], rax
movaps xmm0, xmmword [rsp + 0xf0]
movaps xmmword [rsp + 0x140], xmm0
mov qword [rsp + 0xc8], r12
lea rcx, [rsp + 0x2a0]
lea rdx, [rsp + 0x650]
mov r8d, 0xa0
call sub.msvcrt.dll_memcpy
xorps xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
lea rdx, [rsp + 0x90]
xor ecx, ecx
mov r8d, 0x20
mov r9d, 2
call sub.bcrypt.dll_BCryptGenRandom
mov r13d, eax
cmp eax, 0xc0000000
jb 0x14016b213
lea rcx, [rsp + 0x90]
mov edx, 0x20
call sub.ADVAPI32.dll_SystemFunction036
test al, al
jne 0x14016b213
cmp r13d, 0x80000000
je 0x14016b213
cmp dword [rsp + 0x338], 0x3b9aca00
je 0x14016afbc
cmp byte [rsp + 0x328], 2
lea rax, [rsp + 0x2a8]
lea rcx, [rsp + 0x2d0]
cmove rcx, rax
call fcn.140165450
lock dec qword [r12]
jne 0x14016afd0
mov rcx, qword [rsp + 0xc8]
call fcn.14000b1b0
mov rbx, qword [rsp + 0x140]
mov rax, qword [rsp + 0x150]
test rax, rax
je 0x14016b002
imul rsi, rax, 0x38
mov rcx, rbx
nop dword [rax]
lea rdi, [rcx + 0x38]
call fcn.1401498a0
mov rcx, rdi
add rsi, 0xffffffffffffffc8
jne 0x14016aff0
cmp qword [rsp + 0x148], 0
je 0x14016b01e
mov rcx, qword [0x14031a128]
xor edx, edx
mov r8, rbx
call fcn.1401f903c
cmp qword [rsp + 0x128], 0
je 0x14016b03f
mov r8, qword [rsp + 0x120]
mov rcx, qword [0x14031a128]
xor edx, edx
call fcn.1401f903c
cmp byte [rsp + 0xd0], 0
jne 0x14016b06a
cmp qword [rsp + 0xe0], 0
je 0x14016b06a
mov r8, qword [rsp + 0xd8]
mov rcx, qword [0x14031a128]
xor edx, edx
call fcn.1401f903c
mov eax, dword [rsp + 0x159]
mov ecx, dword [rsp + 0x15c]
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x5b], ecx
mov dil, 1
mov r14b, 0xf
lea rcx, [rsp + 0x500]
call fcn.14015e700
mov r8, qword [rsp + 0x558]
test r8, r8
je 0x14016b0b9
cmp qword [rsp + 0x560], 0
je 0x14016b0b9
mov rcx, qword [0x14031a128]
xor edx, edx
call fcn.1401f903c
mov rsi, qword [rsp + 0x570]
test rsi, rsi
je 0x14016b126
mov rax, qword [rsp + 0x580]
test rax, rax
je 0x14016b105
shl rax, 3
lea rbx, [rax + rax*2]
xor ebp, ebp
jmp 0x14016b0e9
add rbp, 0x18
cmp rbx, rbp
je 0x14016b105
cmp qword [rsi + rbp + 8], 0
je 0x14016b0e0
mov r8, qword [rsi + rbp]
mov rcx, qword [0x14031a128]
xor edx, edx
call fcn.1401f903c
jmp 0x14016b0e0
cmp qword [rsp + 0x578], 0
je 0x14016b126
mov r8, qword [rsp + 0x570]
mov rcx, qword [0x14031a128]
xor edx, edx
call fcn.1401f903c
lea rcx, [rsp + 0x590]
call fcn.14011b7b0
lea rcx, [rsp + 0x5c0]
call fcn.14011b7b0
lea rcx, [rsp + 0x5f0]
call fcn.14011b7b0
mov r8, qword [rsp + 0x620]
test r8, r8
je 0x14016b173
cmp qword [rsp + 0x628], 0
je 0x14016b173
mov rcx, qword [0x14031a128]
xor edx, edx
call fcn.1401f903c
test dil, dil
jne 0x14016b20e
mov rdi, qword [rsp + 0x108]
mov rax, qword [rsp + 0x118]
test rax, rax
je 0x14016b1b2
imul rsi, rax, 0x38
mov rcx, rdi
nop dword [rax + rax]
lea rbx, [rcx + 0x38]
call fcn.1401498a0
mov rcx, rbx
add rsi, 0xffffffffffffffc8
jne 0x14016b1a0
cmp qword [rsp + 0x110], 0
je 0x14016b1ce
mov rcx, qword [0x14031a128]
xor edx, edx
mov r8, rdi
call fcn.1401f903c
cmp byte [rsp + 0x440], 0
jne 0x14016b1f9
cmp qword [rsp + 0x450], 0
je 0x14016b1f9
mov r8, qword [rsp + 0x448]
mov rcx, qword [0x14031a128]
xor edx, edx
call fcn.1401f903c
mov rax, qword [rsp + 0x68]
lock dec qword [rax]
jne 0x14016b20e
mov rcx, qword [rsp + 0x68]
call fcn.14000b1b0
jmp 0x14016b384
movaps xmm0, xmmword [rsp + 0x90]
movaps xmm1, xmmword [rsp + 0xa0]
movups xmmword [rsp + 0x278], xmm1
movups xmmword [rsp + 0x268], xmm0
xorps xmm0, xmm0
movups xmmword [rsp + 0x210], xmm0
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movups xmmword [rsp + 0x228], xmm0
movups xmmword [rsp + 0x238], xmm1
movaps xmm0, xmmword [rsp + 0xd0]
movaps xmm1, xmmword [rsp + 0xe0]
movups xmmword [rsp + 0x248], xmm0
movups xmmword [rsp + 0x258], xmm1
mov qword [rsp + 0x160], r12
lea rcx, [rsp + 0x168]
lea rdx, [rsp + 0x650]
mov r8d, 0xa0
call sub.msvcrt.dll_memcpy
mov word [rsp + 0x288], 0
mov qword [rsp + 0x208], 2
mov qword [rsp + 0x220], rbp
lea rax, [rsp + 0x4f0]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x160]
mov qword [rsp + 0x38], rax
mov byte [rsp + 0x20], bl
mov qword [rsp + 0x28], 2
lea rcx, [rsp + 0x120]
lea r8, [rsp + 0x340]
lea r9, [rsp + 0x140]
xor edx, edx
call fcn.14016b7c0
mov rbx, rax
mov rbp, rdx
movups xmm0, xmmword [rsp + 0x4d0]
movups xmm1, xmmword [rsp + 0x4e0]
movaps xmmword [rsp + 0x720], xmm0
movaps xmmword [rsp + 0x730], xmm1
movaps xmm0, xmmword [rsp + 0x500]
movaps xmm1, xmmword [rsp + 0x510]
movaps xmm2, xmmword [rsp + 0x520]
movaps xmmword [rsp + 0x710], xmm2
movaps xmmword [rsp + 0x700], xmm1
movaps xmmword [rsp + 0x6f0], xmm0
mov rdi, qword [rsp + 0x530]
lea rdx, [rsp + 0x538]
lea rcx, [rsp + 0x7b0]
mov r8d, 0x110
call sub.msvcrt.dll_memcpy
mov r14b, 0x14
cmp rdi, 2
jne 0x14016b3d3
mov eax, dword [rsp + 0x58]
mov ecx, dword [rsp + 0x5b]
mov dword [rsp + 0x53], ecx
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x53]
mov dword [r15 + 4], ecx
mov dword [r15 + 1], eax
mov byte [r15], r14b
mov qword [r15 + 8], rbx
mov qword [r15 + 0x10], rbp
mov qword [r15 + 0x70], 2
movaps xmm6, xmmword [rsp + 0x8c0]
add rsp, 0x8d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [rsp + 0x58]
mov ecx, dword [rsp + 0x5b]
mov dword [rsp + 0x53], ecx
mov dword [rsp + 0x50], eax
movaps xmm0, xmmword [rsp + 0x720]
movaps xmm1, xmmword [rsp + 0x730]
movups xmmword [r15 + 0x30], xmm1
movups xmmword [r15 + 0x20], xmm0
movaps xmm0, xmmword [rsp + 0x6f0]
movaps xmm1, xmmword [rsp + 0x700]
movaps xmm2, xmmword [rsp + 0x710]
movups xmmword [r15 + 0x40], xmm0
movups xmmword [r15 + 0x50], xmm1
movups xmmword [r15 + 0x60], xmm2
lea rcx, [r15 + 0x78]
lea rdx, [rsp + 0x7b0]
mov r8d, 0x110
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsp + 0x761]
movups xmm1, xmmword [rsp + 0x770]
movups xmmword [r15 + 0x198], xmm1
movups xmmword [r15 + 0x189], xmm0
movups xmm0, xmmword [rsp + 0x790]
movups xmm1, xmmword [rsp + 0x7a0]
movups xmmword [r15 + 0x1d0], xmm1
movups xmmword [r15 + 0x1c0], xmm0
movups xmm0, xmmword [rsp + 0x780]
movups xmmword [r15 + 0x1e8], xmm0
mov eax, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x53]
mov dword [r15 + 4], ecx
mov dword [r15 + 1], eax
xorps xmm0, xmm0
movups xmmword [r15 + 0x1b0], xmm0
mov byte [r15], 0x14
mov qword [r15 + 8], rbx
mov qword [r15 + 0x10], rbp
mov qword [r15 + 0x70], rdi
mov byte [r15 + 0x188], 0x14
mov qword [r15 + 0x1a8], 1
mov qword [r15 + 0x1e0], 2
mov qword [r15 + 0x1f8], 0
jmp 0x14016b3b7
mov ecx, 0xc0
mov edx, 8
call fcn.1400270c0
jmp 0x14016b553
mov ecx, 0xc0
mov edx, 8
call fcn.1400270c0
jmp 0x14016b553
mov ecx, 0xc0
mov edx, 8
call fcn.1400270c0
jmp 0x14016b553
lea rcx, str.No_kx_groups_configured
lea r8, str.C:UsersUser.cargo_registry_srcgithub.com_1ecc6299db9ec823_rustls_0.21.10_srcclient_tls13.rs
mov edx, 0x17
call fcn.14002d970
jmp 0x14016b553
lea r8, str.C:UsersUser.cargo_registry_srcgithub.com_1ecc6299db9ec823_ring_0.17.8_srceckeys.rs
mov edx, 0x30
jmp 0x14016b54b
lea r8, str.C:UsersUser.cargo_registry_srcgithub.com_1ecc6299db9ec823_ring_0.17.8_srceckeys.rs
mov edx, 0x61
mov rcx, r9
call fcn.14002c6f0
ud2