Function at 0x1400448a0
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x50
mov rsi, r8
mov r14, rdx
mov rdi, rcx
xor r12d, r12d
mov rbx, qword [0x140199918]
test rbx, rbx
jne 0x1400448ee
lea ecx, [rbx + 0x28]
call fcn.1400df728
mov rbx, rax
mov qword [rsp + 0xa0], rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov qword [0x140199918], rbx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test rsi, rsi
jne 0x14004494d
mov rcx, qword [0x140199918]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rdx, qword [r14]
sub rdx, 0x18
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x14004493c
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x140044932
mov ebx, 0xffffffff
lock xadd dword [rdx + 0x10], ebx
sub ebx, 1
jg 0x14004493c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
xor al, al
add rsp, 0x50
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp qword [rsi], 0
je 0x1400449a4
mov rcx, qword [0x140199918]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rdx, qword [r14]
sub rdx, 0x18
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x140044993
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x140044989
mov ebx, 0xffffffff
lock xadd dword [rdx + 0x10], ebx
sub ebx, 1
jg 0x140044993
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov al, 1
add rsp, 0x50
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
imul eax, dword [rdi + 0x88], 0x343fd
add eax, 0x269ec3
shr eax, 0x10
and eax, 0x7fff
mov dword [rdi + 0x88], eax
mov rcx, qword [rsi]
mov ebx, 0xffffffff
test rcx, rcx
jne 0x140044c5c
mov rbp, qword [r14]
cmp dword [rbp - 0x10], ecx
jle 0x140044a63
lea edx, [rcx + 0x5c]
mov rcx, rbp
call fcn.1400e16d8
test rax, rax
je 0x140044a63
cmp word [rax], 0
je 0x140044a63
sub rax, rbp
sar rax, 1
test eax, eax
js 0x140044a63
mov rbp, qword [r14]
cmp dword [rbp - 0x10], 0
jle 0x140044a26
lea rdx, [0x140134ad8]
mov rcx, rbp
call fcn.1400e1754
test rax, rax
je 0x140044a26
sub rax, rbp
sar rax, 1
cmp eax, 1
je 0x140044a4d
mov rbp, qword [r14]
cmp dword [rbp - 0x10], 0
jle 0x140044a63
lea rdx, [0x140134680]
mov rcx, rbp
call fcn.1400e1754
test rax, rax
je 0x140044a63
sub rax, rbp
sar rax, 1
test eax, eax
jne 0x140044a63
mov r9d, 8
mov rdx, qword [r14]
mov rcx, rsi
call fcn.14003eca0
jmp 0x140044c50
lea rcx, [0x14019a740]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r15, qword [0x14019a768]
test r15, r15
jne 0x140044a9f
lea ecx, [r15 + 0x18]
call fcn.1400df728
mov qword [rsp + 0xa0], rax
mov rcx, rax
call fcn.140053c00
mov r15, rax
mov qword [0x14019a768], rax
lea rcx, [0x14019a740]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, qword [r15]
mov rbp, qword [rax + 0x18]
test rbp, rbp
je 0x140044ac1
add rbp, 0x620
jmp 0x140044ac8
lea rbp, [0x140129d58]
call fcn.140008400
mov r10, qword [rax]
mov byte [rsp + 0x30], 1
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
mov r9d, ebx
mov r8d, ebx
mov rdx, rbp
mov rcx, rax
call qword [r10 + 0x28]
mov qword [rsp + 0xa0], rax
cmp dword [rax - 0x10], 0
jle 0x140044c0d
mov r8, r14
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0xa8]
call fcn.14003aba0
nop
mov r9d, 8
mov rdx, qword [rax]
mov rcx, rsi
call fcn.14003eca0
movzx ebp, al
mov rdx, qword [rsp + 0xa8]
add rdx, 0xffffffffffffffe8
mov ecx, dword [rdx + 0x10]
cmp ecx, 0x7ffffc17
je 0x140044b63
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x140044b59
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140044b63
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
test bpl, bpl
jne 0x140044c1c
lea r8, [0x140134ae0]
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0x48]
call fcn.14003ac90
nop
mov r8, r14
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.14003aba0
nop
mov r9d, 8
mov rdx, qword [rax]
mov rcx, rsi
call fcn.14003eca0
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x140044bda
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x140044bd0
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140044bda
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x140044c0b
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x140044c01
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140044c0b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x140044c1c
xor r9d, r9d
mov rdx, qword [r14]
mov rcx, rsi
call fcn.14003eca0
nop
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x140044c50
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x140044c46
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140044c50
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsi]
test rcx, rcx
je 0x140044dba
lea rax, [rdi + 0x28]
cmp rsi, rax
jne 0x140044cb5
test rcx, rcx
je 0x140044c87
lea rdx, str.GetJRToolsDLL
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140044c87
mov ecx, 0x30d70
call rax
mov qword [rdi + 0x38], rax
mov rcx, qword [rdi + 0x38]
test rcx, rcx
je 0x140044d73
mov rax, qword [0x140199908]
test rax, rax
je 0x140044ca4
mov r12, qword [rax + 8]
mov rax, qword [rcx]
mov r8, r12
movzx edx, byte [rdi + 0x30]
call qword [rax]
jmp 0x140044dba
lea rax, [rdi + 0x40]
cmp rsi, rax
jne 0x140044cf6
test rcx, rcx
je 0x140044cdb
lea rdx, str.GetJRPlayerDLL
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140044cdb
call rax
mov qword [rdi + 0x50], rax
mov rcx, qword [rdi + 0x50]
test rcx, rcx
je 0x140044d73
mov rax, qword [rcx]
movzx edx, byte [rdi + 0x48]
call qword [rax]
jmp 0x140044dba
lea rax, [rdi + 0x10]
cmp rsi, rax
jne 0x140044d33
test rcx, rcx
je 0x140044d1c
lea rdx, str.GetJRImageAppDLL
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140044d1c
call rax
mov qword [rdi + 0x20], rax
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x140044d73
mov rax, qword [rcx]
movzx edx, byte [rdi + 0x30]
call qword [rax]
jmp 0x140044dba
lea rax, [rdi + 0x70]
cmp rsi, rax
jne 0x140044d7d
test rcx, rcx
je 0x140044d5c
lea rdx, str.GetJRTelevisionDLL
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140044d5c
call rax
mov qword [rdi + 0x80], rax
mov rcx, qword [rdi + 0x80]
test rcx, rcx
je 0x140044d73
mov rax, qword [rcx]
movzx edx, byte [rdi + 0x78]
call qword [rax]
jmp 0x140044dba
mov rcx, rsi
call fcn.14003f140
jmp 0x140044dba
test rcx, rcx
je 0x140044d9a
lea rdx, str.JRReaderInitialize
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140044d9a
movzx ecx, byte [rdi + 8]
call rax
mov rcx, qword [rsi]
test rcx, rcx
je 0x140044dba
lea rdx, str.JRDiscInitialize
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140044dba
movzx ecx, byte [rdi + 0x60]
call rax
mov rcx, qword [0x140199918]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp qword [rsi], 0
setne dil
mov rdx, qword [r14]
sub rdx, 0x18
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x140044dfd
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x140044df2
lock xadd dword [rdx + 0x10], ebx
sub ebx, 1
jg 0x140044dfd
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
nop
movzx eax, dil
add rsp, 0x50
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret