Function at 0x1800306d0
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x160
mov rax, qword [0x180154010]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov rdi, rcx
mov rbx, rdx
mov rcx, rdx
call fcn.18003f630
cmp byte [rbx + 8], 0
je 0x1800309c4
cmp qword [rdi + 0xc8], 0
jne 0x1800309b4
cmp byte [rdi + 0xd8], 0
jne 0x1800309c4
cmp qword [rdi + 0xf0], 0
je 0x1800309c4
lea r9, [rdi + 0xe0]
mov byte [rsp + 0x40], 0
cmp qword [r9 + 0x18], 0x10
jb 0x180030746
mov r9, qword [r9]
mov rax, qword [rdi + 0x38]
lea r8, [0x180122a87]
mov qword [rsp + 0x28], r8
lea rcx, [rsp + 0x40]
mov edx, 0x103
mov qword [rsp + 0x20], rax
call fcn.1800939f8
mov rax, qword [rdi + 0xb8]
test rax, rax
je 0x1800309bd
cmp qword [rdi + 0xc8], 0
jne 0x1800307a5
lea rcx, [rsp + 0x40]
call qword [case.0x18002b58a.0]
test rax, rax
mov qword [rdi + 0xc8], rax
mov byte [rdi + 0xd0], 1
setne al
jmp 0x1800307a7
xor al, al
mov byte [rdi + 0xd2], al
test al, al
je 0x1800309bd
mov rcx, qword [rdi + 0xc8]
lea rdx, str.RxDiagActivate
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
lea rcx, [0x180030660]
lea rdx, str.RxDiagActivateSucceeded
cmovne rcx, rax
mov qword [rdi + 0x108], rcx
mov rcx, qword [rdi + 0xc8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
lea rcx, [0x180030680]
lea rdx, str.RxDiagRelease
cmovne rcx, rax
mov qword [rdi + 0x110], rcx
mov rcx, qword [rdi + 0xc8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
lea rcx, [0x180030670]
lea rdx, str.RxDiagWriteData
cmovne rcx, rax
mov qword [rdi + 0x118], rcx
mov rcx, qword [rdi + 0xc8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
lea rcx, [0x180030690]
lea rdx, str.RxDiagGetStartTime
cmovne rcx, rax
mov qword [rdi + 0x120], rcx
mov rcx, qword [rdi + 0xc8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
lea rcx, [0x1800306a0]
lea rdx, str.RxDiagSetStartTime
cmovne rcx, rax
mov qword [rdi + 0x128], rcx
mov rcx, qword [rdi + 0xc8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
lea rcx, [0x1800306b0]
lea rdx, str.RxDiagGetThreadId
cmovne rcx, rax
mov qword [rdi + 0x130], rcx
mov rcx, qword [rdi + 0xc8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
lea rcx, [0x1800306c0]
lea rdx, str.RxDiagFeaturesSet
cmovne rcx, rax
mov qword [rdi + 0x138], rcx
mov rcx, qword [rdi + 0xc8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
lea rcx, [0x18002f0f0]
lea rdx, str.RxDiagMessagePumpHandle
cmovne rcx, rax
mov qword [rdi], rcx
mov rcx, qword [rdi + 0xc8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x18002f100]
mov byte [rsp + 0x30], 0
test rax, rax
cmovne rcx, rax
mov rax, qword [rdi + 0x108]
mov qword [rdi + 8], rcx
lea rcx, [rsp + 0x30]
call qword [case.0x18002b58a.0]
mov rax, qword [rdi + 0x110]
call qword [case.0x18002b58a.0]
mov byte [rdi + 0x100], al
test al, al
je 0x1800309b4
cmp byte [rsp + 0x30], 0
je 0x1800309a7
call fcn.180047db0
mov rbx, rax
call fcn.180047d94
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul r8, rcx, 0x3b9aca00
cqo
idiv rbx
add r8, rax
movabs rax, 0x431bde82d7b634db
imul r8
mov rax, qword [rdi + 0x130]
sar rdx, 0x12
mov rcx, rdx
shr rcx, 0x3f
add rcx, rdx
call qword [case.0x18002b58a.0]
mov rax, qword [rdi + 0x128]
call qword [case.0x18002b58a.0]
movzx eax, byte [rdi + 0x100]
jmp 0x1800309c6
mov byte [rdi + 0xd8], 1
xor al, al
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.18003f930
mov rbx, qword [rsp + 0x180]
add rsp, 0x160
pop rdi
ret