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

Disassembly:
lea r12, [rsp - 0x78]
cmp r12, qword [r14 + 0x10]
jbe 0x45c6a6
push rbp
mov rbp, rsp
sub rsp, 0xf0
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rbx
test rax, rax
je 0x45c690
movzx edx, byte [rax + 0x17]
and edx, 0x1f
nop word [rax + rax]
cmp dl, 0x13
jne 0x45c690
movups xmmword [rsp + 0x88], xmm15
movups xmmword [rsp + 0x98], xmm15
movups xmmword [rsp + 0xa8], xmm15
movups xmmword [rsp + 0xb8], xmm15
movzx edx, byte [rax + 0x14]
test dl, 1
je 0x45c1fd
mov ecx, 0x48
jmp 0x45c202
mov ecx, 0x38
movzx edx, word [rax + 0x30]
test dx, dx
jne 0x45c211
xor edx, edx
xor esi, esi
jmp 0x45c216
nop
lea rsi, [rcx + rax]
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0xe8], rbx
mov qword [rsp + 0xe0], rax
xor ecx, ecx
jmp 0x45c26c
mov qword [rsp + 0x28], rcx
mov rbx, qword [rsi + rcx*8]
lea rax, [rsp + 0x88]
call fcn.0044e240
mov rcx, qword [rsp + 0x28]
inc rcx
mov rax, qword [rsp + 0xe0]
mov rdx, qword [rsp + 0x18]
mov rbx, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0x30]
cmp rdx, rcx
jg 0x45c234
mov rdx, qword [rsp + 0xa8]
add rdx, 7
and rdx, 0xfffffffffffffff8
mov qword [rsp + 0xa8], rdx
mov qword [rsp + 0xc0], rdx
movzx esi, word [rax + 0x32]
and esi, 0x7fff
nop
nop dword [rax]
test si, si
jne 0x45c2a9
xor ecx, ecx
jmp 0x45c2c1
movzx edi, word [rax + 0x30]
lea r8d, [rsi + rdi]
movzx ecx, r8w
cmp rdi, rcx
ja 0x45c689
sub rcx, rdi
cmp rcx, 1
jne 0x45c676
test si, si
jne 0x45c2d7
xor r8d, r8d
xor edi, edi
jmp 0x45c322
movzx edi, byte [rax + 0x14]
nop dword [rax + rax]
test dil, 1
je 0x45c2ed
mov ecx, 0x48
jmp 0x45c2f2
mov ecx, 0x38
movzx edi, word [rax + 0x30]
lea r8d, [rsi + rdi]
lea r9, [rax + rcx]
movzx ecx, r8w
cmp rdi, rcx
ja 0x45c66f
sub rcx, rdi
mov r8, rcx
neg rcx
shl rdi, 3
sar rcx, 0x3f
and rdi, rcx
add rdi, r9
test r8, r8
jbe 0x45c665
mov rdi, qword [rdi]
cmp qword [rdi], 8
jne 0x45c64d
test si, si
jne 0x45c343
xor esi, esi
xor edi, edi
jmp 0x45c386
movzx edi, byte [rax + 0x14]
test dil, 1
je 0x45c354
mov ecx, 0x48
jmp 0x45c359
mov ecx, 0x38
movzx edi, word [rax + 0x30]
add esi, edi
lea r8, [rax + rcx]
movzx ecx, si
cmp rdi, rcx
ja 0x45c646
sub rcx, rdi
mov rsi, rcx
neg rcx
shl rdi, 3
sar rcx, 0x3f
and rdi, rcx
add rdi, r8
test rsi, rsi
jbe 0x45c63c
mov rcx, qword [rdi]
movzx ecx, byte [rcx + 0x17]
and ecx, 0x1f
nop dword [rax]
cmp cl, 0xd
je 0x45c629
cmp cl, 0xe
je 0x45c629
cmp qword [0x008712b0], 0
jne 0x45c3c8
lea rcx, [rdx + 8]
mov qword [rsp + 0xa8], rcx
mov rcx, qword [rsp + 0xa8]
add rcx, 7
and rcx, 0xfffffffffffffff8
add rcx, qword [rsp + 0xb0]
cmp rcx, 0x200
ja 0x45c616
nop
nop
nop
lea rax, [0x008c60c0]
call fcn.0040b500
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0xc8], rcx
mov byte [rsp + 0xd0], 0
mov rbx, qword [0x008ed1c8]
lea rax, [0x0067d660]
lea rcx, [rsp + 0xc8]
call fcn.0040e5a0
test bl, bl
jne 0x45c5b5
cmp qword [0x008ed1c8], 0
nop
jne 0x45c46a
call fcn.0040df00
cmp dword [0x0092d940], 0
je 0x45c463
call fcn.0045fe40
mov qword [r11], rax
mov rdx, qword [0x008ed1c8]
mov qword [r11 + 8], rdx
mov qword [0x008ed1c8], rax
mov rax, qword [0x008ed1d0]
cmp rax, 0x7d0
jge 0x45c5f3
lea rdi, [rsp + 0x38]
lea rdi, [rdi - 0x30]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.004604d0
mov rbp, qword [rbp]
mov rdx, qword [rsp + 0xe8]
mov qword [rsp + 0x38], rdx
movups xmm0, xmmword [rsp + 0x88]
movups xmmword [rsp + 0x48], xmm0
movups xmm0, xmmword [rsp + 0x98]
movups xmmword [rsp + 0x58], xmm0
movups xmm0, xmmword [rsp + 0xa8]
movups xmmword [rsp + 0x68], xmm0
movups xmm0, xmmword [rsp + 0xb8]
movups xmmword [rsp + 0x78], xmm0
nop word [rax + rax]
jae 0x45c5e9
mov qword [rsp + 0x20], rax
lea r8, [rax + rax*4]
mov qword [rsp + 0x28], r8
shl r8, 4
lea r10, [0x008c60c8]
lea rdi, [r10 + r8]
cmp dword [0x0092d940], 0
je 0x45c538
mov qword [rsp + 0xd8], rdi
lea rax, [0x0069a9c0]
mov rbx, rdi
lea rcx, [rsp + 0x38]
call fcn.00413600
mov rdx, qword [rsp + 0xe8]
mov rdi, qword [rsp + 0xd8]
lea rsi, [rsp + 0x38]
nop dword [rax]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0046083a
mov rbp, qword [rbp]
mov qword [rsp + 0xc8], rdx
mov byte [rsp + 0xd0], 0
mov rbx, qword [0x008ed1c8]
lea rax, [0x0067d660]
lea rcx, [rsp + 0xc8]
call fcn.0040e9c0
mov rdx, qword [rsp + 0x20]
mov qword [rax], rdx
inc qword [0x008ed1d0]
nop
nop
nop
lea rax, [0x008c60c0]
call fcn.0040b760
lea rdx, [0x00461c20]
mov r8, qword [rsp + 0x28]
lea rax, [rdx + r8]
add rsp, 0xf0
pop rbp
ret
mov rcx, qword [rax]
lea rcx, [rcx + rcx*4]
mov qword [rsp + 0x28], rcx
nop
nop
nop
lea rax, [0x008c60c0]
call fcn.0040b760
lea rcx, [0x00461c20]
mov rdx, qword [rsp + 0x28]
lea rax, [rdx + rcx]
add rsp, 0xf0
pop rbp
ret
mov ecx, 0x7d0
call fcn.004601e0
nop
nop
nop
lea rax, [0x008c60c0]
nop dword [rax]
call fcn.0040b760
lea rax, [0x006cc932]
mov ebx, 0x1b
call fcn.004341e0
lea rax, [0x0066d140]
lea rbx, [0x00740c70]
call fcn.004337c0
lea rax, [0x0066d140]
lea rbx, [0x00740c60]
call fcn.004337c0
xor eax, eax
mov rcx, rax
call fcn.004601e0
mov eax, edi
call fcn.00460320
lea rax, [0x0066d140]
lea rbx, [0x00740c50]
nop dword [rax + rax]
call fcn.004337c0
xor eax, eax
mov rcx, rax
call fcn.004601e0
mov eax, edi
call fcn.00460320
lea rax, [0x0066d140]
lea rbx, [0x00740c50]
call fcn.004337c0
mov eax, edi
call fcn.00460320
lea rax, [0x0066d140]
lea rbx, [0x00740c50]
nop
call fcn.004337c0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov byte [rsp + 0x18], cl
call fcn.0045df00
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
movzx ecx, byte [rsp + 0x18]
jmp fcn.0045c180