Function at 0x14002e190
Capabilities:
Reference http user-agent string

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xc0
mov rax, qword [0x14006d010]
xor rax, rsp
mov qword [rbp + 0x1f], rax
mov r14, r8
mov rsi, rcx
call fcn.140011c80
lea rdx, [rsi + 0xb8]
lea rcx, [rbp - 9]
call qword [sym.imp.Cmmlib.dll_public:_void___cdecl_Cmm::CStringT_wchar_t_::constructor_class_Cmm::CStringT_wchar_t__const____ptr64____ptr64]
nop
call fcn.140025628
mov rcx, rax
mov r15d, 1
mov r9b, r15b
mov r8b, r15b
lea rdx, [rbp - 9]
call fcn.140026e0c
nop
lea rcx, [rbp - 9]
call qword [sym.imp.Cmmlib.dll_public_virtual:_void___cdecl_Cmm::CStringT_wchar_t_::destructor_void____ptr64]
lea rcx, [r14 + 0x60]
call qword [sym.imp.Cmmlib.dll_public:_bool___cdecl_Cmm::CStringT_wchar_t_::empty_void_const___ptr64]
test al, al
jne 0x14002e37b
lea rcx, [r14 + 0x88]
call qword [sym.imp.Cmmlib.dll_public:_bool___cdecl_Cmm::CStringT_wchar_t_::empty_void_const___ptr64]
test al, al
jne 0x14002e37b
call fcn.140025628
mov rdi, qword [rax + 0x60]
test rdi, rdi
je 0x14002e238
lock add dword [rdi + 8], r15d
mov rdi, qword [rax + 0x60]
mov rax, qword [rax + 0x58]
mov qword [rbp - 0x39], rax
mov qword [rbp - 0x31], rdi
test rax, rax
je 0x14002e339
call fcn.140025628
mov r8d, dword [rsi + 0x28]
lea rdx, [rbp - 0x29]
mov rcx, rax
call fcn.140015284
mov rdx, rax
lea rcx, [rbp - 0x59]
call fcn.140024cf8
nop
mov rbx, qword [rbp - 0x21]
test rbx, rbx
je 0x14002e2b1
or eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14002e2b1
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax]
call qword [case.0x140017c25.0]
or eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14002e2b1
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [case.0x140017c25.0]
mov rbx, qword [rbp - 0x51]
cmp qword [rbp - 0x59], 0
je 0x14002e2f0
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x49], xmm0
test rbx, rbx
je 0x14002e2d2
lock add dword [rbx + 8], r15d
mov rbx, qword [rbp - 0x51]
movaps xmm0, xmmword [rbp - 0x59]
movdqa xmmword [rbp - 0x49], xmm0
lea r9, [r14 + 0x88]
lea r8, [r14 + 0x60]
lea rdx, [rbp - 0x49]
call fcn.140024898
nop
or r14d, 0xffffffff
test rbx, rbx
je 0x14002e33d
mov eax, r14d
lock xadd dword [rbx + 8], eax
add eax, r14d
jne 0x14002e33d
mov rbx, qword [rbp - 0x51]
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax]
call qword [case.0x140017c25.0]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
add eax, r14d
jne 0x14002e33d
mov rcx, qword [rbp - 0x51]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140017c25.0]
jmp 0x14002e33d
or r14d, 0xffffffff
test rdi, rdi
je 0x14002e37b
mov eax, r14d
lock xadd dword [rdi + 8], eax
add eax, r14d
jne 0x14002e37b
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax]
call qword [case.0x140017c25.0]
mov eax, r14d
lock xadd dword [rdi + 0xc], eax
add eax, r14d
jne 0x14002e37b
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax + 8]
call qword [case.0x140017c25.0]
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 0xf8]
call qword [case.0x140017c25.0]
test al, al
je 0x14002e5ed
mov rcx, rsi
call fcn.14002e820
mov rcx, rsi
call fcn.14002dfdc
xor ecx, ecx
mov qword [rbp - 0x79], rcx
mov r8, qword [rsi + 0x298]
test r8, r8
je 0x14002e5da
and qword [rbp - 0x79], rcx
mov rax, qword [r8]
lea rdx, [rbp - 0x79]
mov rcx, r8
mov rax, qword [rax + 0x18]
call qword [case.0x140017c25.0]
mov rcx, qword [rbp - 0x79]
test rcx, rcx
je 0x14002e5da
mov rax, qword [rcx]
movzx edx, byte [rsi + 0x1b1]
mov rax, qword [rax + 0x90]
call qword [case.0x140017c25.0]
mov edi, dword [rsi + 0xa8]
test edi, edi
je 0x14002e4ba
lea rcx, [rbp - 0x19]
call fcn.1400305a0
mov rcx, qword [rax]
mov rdx, qword [rax + 8]
and qword [rax], 0
and qword [rax + 8], 0
mov qword [rsi + 0x418], rcx
mov rbx, qword [rsi + 0x420]
mov qword [rsi + 0x420], rdx
or r14d, 0xffffffff
test rbx, rbx
je 0x14002e476
mov eax, r14d
lock xadd dword [rbx + 8], eax
add eax, r14d
jne 0x14002e476
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax]
call qword [case.0x140017c25.0]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
add eax, r14d
jne 0x14002e476
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [case.0x140017c25.0]
mov rbx, qword [rbp - 0x11]
test rbx, rbx
je 0x14002e4c7
mov eax, r14d
lock xadd dword [rbx + 8], eax
add eax, r14d
jne 0x14002e4c7
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax]
call qword [case.0x140017c25.0]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
add eax, r14d
jne 0x14002e4c7
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [case.0x140017c25.0]
jmp 0x14002e4c7
cmp qword [rsi + 0x268], 0
ja 0x14002e4c7
xor r15d, r15d
mov rcx, qword [rbp - 0x79]
mov rax, qword [rcx]
mov edx, r15d
mov rax, qword [rax + 0x70]
call qword [case.0x140017c25.0]
mov rcx, qword [rbp - 0x79]
mov rax, qword [rcx]
mov edx, edi
mov rax, qword [rax + 0x60]
call qword [case.0x140017c25.0]
nop
and qword [rbp - 0x71], 0
mov rcx, qword [rbp - 0x79]
mov rax, qword [rcx]
lea r8, [rbp - 0x71]
lea rdx, [0x14004c598]
mov rax, qword [rax]
call qword [case.0x140017c25.0]
test eax, eax
js 0x14002e55b
cmp qword [rbp - 0x71], 0
je 0x14002e55b
lea rbx, [rsi + 0x80]
mov rcx, rbx
call qword [sym.imp.Cmmlib.dll_public:_bool___cdecl_Cmm::CStringT_wchar_t_::empty_void_const___ptr64]
test al, al
je 0x14002e537
lea r8, str.Mozilla_5.0_ZoomWebKit_537.36__KHTML__like_Gecko__ZoomApps_1.0
jmp 0x14002e543
mov rcx, rbx
call qword [sym.imp.Cmmlib.dll_public:_wchar_t_const____ptr64___cdecl_Cmm::CStringT_wchar_t_::c_str_void_const___ptr64]
mov r8, rax
mov rcx, qword [rbp - 0x71]
mov rdx, qword [rcx]
mov rax, qword [rdx + 0xb0]
mov rdx, r8
call qword [case.0x140017c25.0]
nop
and qword [rbp - 0x69], 0
mov rcx, qword [rbp - 0x79]
mov rax, qword [rcx]
lea r8, [rbp - 0x69]
lea rdx, [0x14004d960]
mov rax, qword [rax]
call qword [case.0x140017c25.0]
test eax, eax
js 0x14002e59f
mov rcx, qword [rbp - 0x69]
test rcx, rcx
je 0x14002e59f
mov rax, qword [rcx]
movzx edx, byte [rsi + 0x1b2]
mov rax, qword [rax + 0xf0]
call qword [case.0x140017c25.0]
mov rcx, rsi
call fcn.14002e770
nop
mov rcx, qword [rbp - 0x69]
test rcx, rcx
je 0x14002e5bf
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140017c25.0]
nop
mov rcx, qword [rbp - 0x71]
test rcx, rcx
je 0x14002e5d6
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140017c25.0]
nop
mov rcx, qword [rbp - 0x79]
test rcx, rcx
je 0x14002e5ed
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140017c25.0]
nop
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.14003e1d0
add rsp, 0xc0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret