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

Disassembly:
lea r12, [rsp - 0x140]
cmp r12, qword [r14 + 0x10]
jbe 0x5aa082
push rbp
mov rbp, rsp
sub rsp, 0x1b8
mov qword [rsp + 0x1d8], rcx
cmp qword [rax + 0x320], 0
jne 0x5a9bbf
mov qword [rsp + 0x1c8], rax
mov qword [rsp + 0x1d0], rbx
mov qword [rsp + 0x1f0], r8
mov qword [rsp + 0x1e0], rdi
mov qword [rsp + 0x1d8], rcx
nop dword [rax + rax]
test rdi, rdi
je 0x5a9766
mov rdx, qword [rcx + rdi*8 - 8]
mov rsi, qword [rdx + 0x68]
cmp qword [rax + 0x50], rsi
jne 0x5a9701
mov rdx, qword [rdx + 0x60]
mov rbx, qword [rax + 0x48]
mov rcx, rsi
mov rax, rdx
call fcn.004035a0
test al, al
je 0x5a96f9
mov rax, qword [rsp + 0x1c8]
mov rcx, qword [rsp + 0x1d8]
mov rbx, qword [rsp + 0x1d0]
mov rdi, qword [rsp + 0x1e0]
mov r8, qword [rsp + 0x1f0]
jmp 0x5a9766
mov rax, qword [rsp + 0x1c8]
mov qword [rsp + 0x188], 0
movups xmmword [rsp + 0x190], xmm15
mov qword [rsp + 0x1a0], 0
mov qword [rsp + 0x188], rax
mov qword [rsp + 0x190], 5
movups xmmword [rsp + 0x198], xmm15
lea rax, [0x006a1ae0]
lea rbx, [rsp + 0x188]
call fcn.0040a6e0
mov rbx, rax
lea rax, [0x007424e0]
add rsp, 0x1b8
pop rbp
ret
mov rdx, qword [r8 + 0x20]
mov r9, qword [r8 + 0x28]
bt rdx, 0x3f
jae 0x5a978e
mov r10, rdx
shl rdx, 1
shr rdx, 0x1f
movabs r11, 0xdd7b17f80
add rdx, r11
jmp 0x5a9794
mov r10, rdx
mov rdx, r9
mov r11, qword [r8 + 0x30]
test rdx, rdx
jne 0x5a97c4
mov rdx, r10
and r10d, 0x3fffffff
test r10d, r10d
jne 0x5a97c7
call fcn.004ae7a0
mov r9, rbx
mov rdx, rax
mov r11, rcx
mov rax, qword [rsp + 0x1c8]
jmp 0x5a97c7
mov rdx, r10
mov qword [rsp + 0x140], r11
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], r9
mov r8, qword [rax + 0x2c0]
mov rdi, qword [rax + 0x2b0]
mov rsi, qword [rax + 0x2b8]
mov rbx, r9
mov rcx, r11
mov rax, rdx
call fcn.004ad540
nop dword [rax]
test al, al
jne 0x5a9a70
mov rdx, qword [rsp + 0x1c8]
mov r8, qword [rdx + 0x2d8]
mov rdi, qword [rdx + 0x2c8]
mov rsi, qword [rdx + 0x2d0]
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x140]
call fcn.004ad480
nop dword [rax]
test al, al
jne 0x5a991b
mov rdx, qword [rsp + 0x1f0]
mov rdx, qword [rdx + 0x50]
mov qword [rsp + 0x68], rdx
test rdx, rdx
jne 0x5a9867
mov qword [rsp + 0x68], 0x3d090
mov qword [rsp + 0x50], 0
mov rdx, qword [rsp + 0x1d0]
cmp rdx, 1
jne 0x5a988b
mov r8, qword [rsp + 0x1e0]
test r8, r8
jmp 0x5a989c
cmp rdx, 2
jne 0x5a98d6
mov r8, qword [rsp + 0x1e0]
test r8, r8
je 0x5a98a4
cmp rdx, 1
jmp 0x5a98e2
nop
lea rax, [0x006870a0]
call fcn.0040d480
mov qword [rax + 8], 0x38
lea rcx, [0x006d6779]
mov qword [rax], rcx
mov rbx, rax
lea rax, [0x00741740]
add rsp, 0x1b8
pop rbp
ret
cmp rdx, 1
mov r8, qword [rsp + 0x1e0]
je 0x5a98ea
cmp rdx, 2
jne 0x5a9914
mov r9, qword [rsp + 0x1c8]
mov r10, qword [r9 + 0x2e8]
nop
mov r11, qword [0x0089c9f0]
mov r12, qword [0x0089c9f8]
mov r13, qword [r9 + 0x2f0]
jmp 0x5aa00d
xor eax, eax
jmp 0x5a9bd6
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x140]
lea rdi, [0x006cb7ca]
mov esi, 0x19
call fcn.004a6ac0
mov qword [rsp + 0x1b0], rax
mov qword [rsp + 0x80], rbx
mov rdx, qword [rsp + 0x1c8]
mov rcx, qword [rdx + 0x2d8]
mov r8, qword [rdx + 0x2c8]
mov r9, qword [rdx + 0x2d0]
lea rdi, [0x006cb7ca]
mov esi, 0x19
mov rax, r8
mov rbx, r9
nop dword [rax]
call fcn.004a6ac0
mov qword [rsp + 0x1a8], rax
mov qword [rsp + 0x78], rbx
movups xmmword [rsp + 0x168], xmm15
movups xmmword [rsp + 0x178], xmm15
mov rax, qword [rsp + 0x1b0]
mov rbx, qword [rsp + 0x80]
call fcn.0040a940
lea rdx, [0x0066d140]
mov qword [rsp + 0x168], rdx
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0x1a8]
mov rbx, qword [rsp + 0x78]
nop dword [rax]
call fcn.0040a940
lea rdx, [0x0066d140]
mov qword [rsp + 0x178], rdx
mov qword [rsp + 0x180], rax
lea rax, [0x006cca25]
mov ebx, 0x1b
lea rcx, [rsp + 0x168]
mov edi, 2
mov rsi, rdi
call fcn.004c2a60
mov rdx, qword [rsp + 0x1c8]
mov qword [rsp + 0x188], rdx
mov qword [rsp + 0x190], 1
mov qword [rsp + 0x198], rax
mov qword [rsp + 0x1a0], rbx
lea rax, [0x006a1ae0]
lea rbx, [rsp + 0x188]
call fcn.0040a6e0
mov rbx, rax
lea rax, [0x007424e0]
add rsp, 0x1b8
pop rbp
ret
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x140]
lea rdi, [0x006cb7ca]
mov esi, 0x19
call fcn.004a6ac0
mov qword [rsp + 0x1b0], rax
mov qword [rsp + 0x80], rbx
mov rdx, qword [rsp + 0x1c8]
mov rcx, qword [rdx + 0x2c0]
mov r8, qword [rdx + 0x2b0]
mov r9, qword [rdx + 0x2b8]
lea rdi, [0x006cb7ca]
mov esi, 0x19
mov rax, r8
mov rbx, r9
call fcn.004a6ac0
mov qword [rsp + 0x1a8], rax
mov qword [rsp + 0x78], rbx
movups xmmword [rsp + 0x168], xmm15
movups xmmword [rsp + 0x178], xmm15
mov rax, qword [rsp + 0x1b0]
mov rbx, qword [rsp + 0x80]
call fcn.0040a940
lea rdx, [0x0066d140]
mov qword [rsp + 0x168], rdx
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0x1a8]
mov rbx, qword [rsp + 0x78]
call fcn.0040a940
lea rdx, [0x0066d140]
mov qword [rsp + 0x178], rdx
mov qword [rsp + 0x180], rax
lea rax, [0x006cd1df]
mov ebx, 0x1c
lea rcx, [rsp + 0x168]
mov edi, 2
mov rsi, rdi
call fcn.004c2a60
mov rdx, qword [rsp + 0x1c8]
mov qword [rsp + 0x188], rdx
mov qword [rsp + 0x190], 1
mov qword [rsp + 0x198], rax
mov qword [rsp + 0x1a0], rbx
lea rax, [0x006a1ae0]
lea rbx, [rsp + 0x188]
call fcn.0040a6e0
mov rbx, rax
lea rax, [0x007424e0]
add rsp, 0x1b8
pop rbp
ret
lea rax, [0x00742580]
lea rbx, [0x0092d4c0]
add rsp, 0x1b8
pop rbp
ret
test al, al
je 0x5a9bf2
mov r9, qword [rsp + 0x1d8]
xor eax, eax
xor ecx, ecx
lea rbx, [rsp + 0x70]
xor esi, esi
jmp 0x5a9cd5
cmp rdx, 1
jne 0x5a9c58
mov rcx, qword [rsp + 0x1c8]
cmp byte [rcx + 0x360], 0
je 0x5a9c12
cmp byte [rcx + 0x361], 0
jne 0x5a9c60
mov qword [rsp + 0x188], rcx
movups xmmword [rsp + 0x190], xmm15
mov qword [rsp + 0x1a0], 0
lea rax, [0x006a1ae0]
lea rbx, [rsp + 0x188]
nop
call fcn.0040a6e0
mov rbx, rax
lea rax, [0x007424e0]
add rsp, 0x1b8
pop rbp
ret
mov rcx, qword [rsp + 0x1c8]
cmp byte [rcx + 0x360], 0
je 0x5a9cc2
mov rdx, qword [rcx + 0x368]
test rdx, rdx
jl 0x5a9cc2
lea rsi, [r8 - 1]
cmp rdx, rsi
jge 0x5a9cc2
mov qword [rsp + 0x188], rcx
mov qword [rsp + 0x190], 3
movups xmmword [rsp + 0x198], xmm15
lea rax, [0x006a1ae0]
lea rbx, [rsp + 0x188]
call fcn.0040a6e0
mov rbx, rax
lea rax, [0x007424e0]
add rsp, 0x1b8
pop rbp
ret
xor eax, eax
xor ebx, ebx
add rsp, 0x1b8
pop rbp
ret
inc rax
mov rsi, r11
cmp r8, rax
jle 0x5a9d99
mov r10, qword [r9 + rax*8]
mov qword [rsp + 0x138], r10
mov r11, qword [r10 + 0x2e8]
mov r12, qword [0x0089c9d0]
mov r13, qword [0x0089c9d8]
mov r15, qword [r10 + 0x2f0]
jmp 0x5a9f2c
jle 0x5a9d91
lea r11, [rsi + 1]
cmp rcx, r11
jae 0x5a9d67
mov qword [rsp + 0x80], rax
mov rax, rbx
mov rbx, r11
mov edi, 1
lea rsi, [0x006b0dc0]
call fcn.00447aa0
mov rdx, qword [rsp + 0x1d0]
mov r8, qword [rsp + 0x1e0]
mov r9, qword [rsp + 0x1d8]
mov r10, qword [rsp + 0x138]
mov r11, rbx
mov rbx, rax
mov rax, qword [rsp + 0x80]
cmp dword [0x0092d940], 0
je 0x5a9d87
mov rsi, r11
call fcn.0045fe40
mov qword [r11], r10
mov r12, qword [rbx + rsi*8 - 8]
mov qword [r11 + 8], r12
mov r11, rsi
mov qword [rbx + r11*8 - 8], r10
jmp 0x5a9ccf
mov r11, rsi
jmp 0x5a9ccf
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x88], rbx
xor eax, eax
jmp 0x5a9dd2
mov rax, qword [rsp + 0x80]
inc rax
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x1d0]
mov r8, qword [rsp + 0x1e0]
cmp rax, rsi
jge 0x5a9e6b
mov qword [rsp + 0x80], rax
mov r9, qword [rbx + rax*8]
mov r10, qword [r9 + 0x2e8]
mov r9, qword [r9 + 0x2f0]
jmp 0x5a9e80
xor ecx, ecx
xor edi, edi
xor r9d, r9d
movups xmmword [rsp + 0x148], xmm15
movups xmmword [rsp + 0x158], xmm15
lea rdx, [0x005aa0e0]
mov qword [rsp + 0x148], rdx
mov rsi, qword [rsp + 0x1c8]
mov qword [rsp + 0x150], rsi
lea r8, [rsp + 0x50]
mov qword [rsp + 0x158], r8
lea r8, [rsp + 0x68]
mov qword [rsp + 0x160], r8
mov rax, r9
mov rbx, rdi
lea rdi, [rsp + 0x148]
call fcn.005a1160
nop
test rax, rax
je 0x5a9daa
jmp 0x5a9edf
cmp rdx, 1
jmp 0x5a9bf6
add r10, 0x38
dec r9
nop dword [rax + rax]
test r9, r9
jle 0x5a9dfa
mov r11, qword [r10]
mov qword [rsp + 0x100], r11
movups xmm0, xmmword [r10 + 8]
movups xmmword [rsp + 0x108], xmm0
movups xmm0, xmmword [r10 + 0x18]
movups xmmword [rsp + 0x118], xmm0
movups xmm0, xmmword [r10 + 0x28]
movups xmmword [rsp + 0x128], xmm0
mov r11, qword [rsp + 0x108]
cmp qword [0x0089c9d8], r11
jne 0x5a9e74
mov r12, qword [rsp + 0x100]
mov r13, qword [0x0089c9d0]
xor ecx, ecx
jmp 0x5a9eeb
add rsp, 0x1b8
pop rbp
ret
inc rcx
cmp rcx, r11
jge 0x5a9f05
mov r15, qword [r12 + rcx*8]
mov rdi, qword [r13 + rcx*8]
cmp rdi, r15
je 0x5a9ee8
nop
jmp 0x5a9e74
mov r9, qword [rsp + 0x120]
mov rdi, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x130]
nop dword [rax]
jmp 0x5a9e01
add r11, 0x38
dec r15
test r15, r15
jle 0x5a9d0b
mov rdi, qword [r11]
mov qword [rsp + 0x90], rdi
movups xmm0, xmmword [r11 + 8]
movups xmmword [rsp + 0x98], xmm0
movups xmm0, xmmword [r11 + 0x18]
movups xmmword [rsp + 0xa8], xmm0
movups xmm0, xmmword [r11 + 0x28]
movups xmmword [rsp + 0xb8], xmm0
mov rdi, qword [rsp + 0x98]
cmp rdi, r13
jne 0x5a9f25
mov rdx, qword [rsp + 0x90]
mov qword [rsp + 0x70], rax
xor eax, eax
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x70]
jmp 0x5a9fd5
mov rdx, qword [rsp + 0x1d0]
mov r8, qword [rsp + 0x1e0]
mov r9, qword [rsp + 0x1d8]
mov r10, qword [rsp + 0x138]
jmp 0x5a9f25
lea r8, [r9 + 1]
mov r9, qword [rsp + 0x1d8]
mov r10, qword [rsp + 0x138]
mov qword [rsp + 0x48], r8
mov r8, qword [rsp + 0x1e0]
mov r9, qword [rsp + 0x48]
cmp r9, rdi
jge 0x5a9fee
mov r8, qword [rdx + r9*8]
mov r10, qword [r12 + r9*8]
cmp r10, r8
je 0x5a9fb4
jmp 0x5a9f8f
test r15, r15
mov rdx, qword [rsp + 0x1d0]
mov r9, qword [rsp + 0x1d8]
jmp 0x5a9d0b
add r10, 0x38
dec r13
test r13, r13
jle 0x5aa05d
mov r15, qword [r10]
mov qword [rsp + 0xc8], r15
movups xmm0, xmmword [r10 + 8]
movups xmmword [rsp + 0xd0], xmm0
movups xmm0, xmmword [r10 + 0x18]
movups xmmword [rsp + 0xe0], xmm0
movups xmm0, xmmword [r10 + 0x28]
movups xmmword [rsp + 0xf0], xmm0
mov r15, qword [rsp + 0xd0]
cmp r15, r12
jne 0x5aa006
mov rax, qword [rsp + 0xc8]
xor ecx, ecx
jmp 0x5aa068
setg al
jmp 0x5a9bd6
inc rcx
cmp rcx, r15
jge 0x5aa07c
mov rbx, qword [rax + rcx*8]
mov rsi, qword [r11 + rcx*8]
cmp rsi, rbx
je 0x5aa065
jmp 0x5aa006
test r13, r13
nop
jmp 0x5aa05d
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r8
call fcn.0045df00
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
jmp fcn.005a9640