Function at 0x1800247b0
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x160
mov rax, qword [0x180145010]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov rdi, rcx
mov rbx, rdx
mov rcx, rdx
call fcn.180034750
cmp byte [rbx + 8], 0
je 0x180024aa4
cmp qword [rdi + 0xc8], 0
jne 0x180024a94
cmp byte [rdi + 0xd8], 0
jne 0x180024aa4
cmp qword [rdi + 0xf0], 0
je 0x180024aa4
lea r9, [rdi + 0xe0]
mov byte [rsp + 0x40], 0
cmp qword [r9 + 0x18], 0x10
jb 0x180024826
mov r9, qword [r9]
mov rax, qword [rdi + 0x38]
lea r8, [0x18011b0fa]
mov qword [rsp + 0x28], r8
lea rcx, [rsp + 0x40]
mov edx, 0x103
mov qword [rsp + 0x20], rax
call fcn.180089e70
mov rax, qword [rdi + 0xb8]
test rax, rax
je 0x180024a9d
cmp qword [rdi + 0xc8], 0
jne 0x180024885
lea rcx, [rsp + 0x40]
call qword [case.0x18001f0fa.0]
test rax, rax
mov qword [rdi + 0xc8], rax
mov byte [rdi + 0xd0], 1
setne al
jmp 0x180024887
xor al, al
mov byte [rdi + 0xd2], al
test al, al
je 0x180024a9d
mov rcx, qword [rdi + 0xc8]
lea rdx, str.RxDiagActivate
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
lea rcx, [0x180024740]
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, [0x180024760]
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, [0x180024750]
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, [0x180024770]
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, [0x180024780]
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, [0x180024790]
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, [0x1800247a0]
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, [0x1800231d0]
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, [0x1800231e0]
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.0x18001f0fa.0]
mov rax, qword [rdi + 0x110]
call qword [case.0x18001f0fa.0]
mov byte [rdi + 0x100], al
test al, al
je 0x180024a94
cmp byte [rsp + 0x30], 0
je 0x180024a87
call fcn.18003e4ac
mov rbx, rax
call fcn.18003e490
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.0x18001f0fa.0]
mov rax, qword [rdi + 0x128]
call qword [case.0x18001f0fa.0]
movzx eax, byte [rdi + 0x100]
jmp 0x180024aa6
mov byte [rdi + 0xd8], 1
xor al, al
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.180034ab0
mov rbx, qword [rsp + 0x180]
add rsp, 0x160
pop rdi
ret