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

Disassembly:
lea r12, [rsp - 0x10]
cmp r12, qword [r14 + 0x10]
jbe 0x588ec6
sub rsp, 0x90
mov qword [rsp + 0x88], rbp
lea rbp, [rsp + 0x88]
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0xa8], rcx
test rbx, rbx
je 0x588e75
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], rcx
mov edx, dword [rbx + 0x10]
cmp edx, 0x62de383d
ja 0x5889a5
nop dword [rax + rax]
cmp edx, 0x43cfbb1f
ja 0x588922
cmp edx, 0x2e74d42b
jne 0x5888ce
lea rdx, [0x006714c0]
nop word [rax + rax]
cmp rbx, rdx
je 0x588a49
jmp 0x588e75
cmp edx, 0x338a7ec0
jne 0x5888ee
lea rdx, [0x00674340]
nop dword [rax]
cmp rbx, rdx
je 0x588c5c
jmp 0x588e75
cmp edx, 0x43cfbb1f
jne 0x588e75
lea rdx, [0x0066fc40]
cmp rbx, rdx
jne 0x588e75
mov rbx, rcx
call fcn.00589120
mov rbp, qword [rsp + 0x88]
add rsp, 0x90
ret
cmp edx, 0x49163278
jne 0x588940
lea rdx, [0x00674380]
cmp rbx, rdx
je 0x588c5c
jmp 0x588e75
cmp edx, 0x5051f1be
jne 0x588980
lea rdx, [0x006c6cc0]
cmp rbx, rdx
jne 0x588e75
mov rbx, rcx
nop dword [rax + rax]
call fcn.00588f00
mov rbp, qword [rsp + 0x88]
add rsp, 0x90
ret
cmp edx, 0x62de383d
jne 0x588e75
lea rdx, [0x00671480]
cmp rbx, rdx
je 0x588a49
nop dword [rax]
jmp 0x588e75
cmp edx, 0xba585d67
ja 0x588a0b
cmp edx, 0x6e78e923
jne 0x5889ce
lea rdx, [0x006742c0]
nop dword [rax]
cmp rbx, rdx
je 0x588c5c
jmp 0x588e75
cmp edx, 0x889ce7f8
jne 0x5889ee
lea rdx, [0x00674300]
nop dword [rax]
cmp rbx, rdx
je 0x588c5c
jmp 0x588e75
cmp edx, 0xba585d67
jne 0x588e75
lea rdx, [0x00671400]
cmp rbx, rdx
je 0x588a49
jmp 0x588e75
cmp edx, 0xc3230e0b
jne 0x588a25
lea rdx, [0x00671440]
cmp rbx, rdx
je 0x588a49
nop
jmp 0x588e75
cmp edx, 0xd6631a7c
jne 0x588c40
lea rdx, [0x00671500]
nop dword [rax + rax]
cmp rbx, rdx
jne 0x588e75
mov qword [rsp + 0x28], 0
lea rbx, [rsp + 0x28]
call fcn.00589240
nop dword [rax]
test al, al
je 0x588c24
mov rdx, qword [rsp + 0x40]
test rdx, rdx
je 0x588aff
nop
cmp byte [0x008d6390], 0
nop
je 0x588ab5
mov qword [0x008d6398], rdx
cmp dword [0x0092b0b0], 0
jne 0x588aa2
mov rsi, qword [rsp + 0x38]
mov qword [0x008d63a0], rsi
nop
jmp 0x588aba
lea rdi, [0x008d63a0]
mov rsi, qword [rsp + 0x38]
call fcn.00465a60
jmp 0x588aba
mov rsi, qword [rsp + 0x38]
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x80], rsi
mov rdi, qword [rsp + 0x78]
test rdi, rdi
je 0x588af3
movzx r8d, byte [rdi + 0x17]
mov r9d, r8d
and r8d, 0x1f
mov r10, r8
bts r8, 7
test r9b, 0x20
cmove r10, r8
nop
mov rax, rsi
jmp 0x588b06
mov rax, rsi
xor r10d, r10d
xor edi, edi
xor esi, esi
jmp 0x588b06
xor r10d, r10d
xor edi, edi
xor esi, esi
mov rax, rdi
mov rbx, rsi
mov rcx, r10
call fcn.0048d1a0
mov rdx, qword [rsp + 0x28]
nop
and ecx, 0x1f
lea rsi, [rcx - 2]
cmp rsi, 4
ja 0x588e88
mov rcx, qword [rax]
shl rcx, 3
lea rsi, [rcx - 0x40]
neg rsi
cmp rsi, 0x40
sbb r8, r8
sbb r9, r9
neg rcx
mov r10, rdx
shl rdx, cl
and rdx, r8
not r9
or rsi, r9
mov rcx, rsi
sar rdx, cl
nop dword [rax + rax]
cmp r10, rdx
jne 0x588c24
mov rdx, qword [rsp + 0x40]
test rdx, rdx
je 0x588bed
nop
cmp byte [0x008d6390], 0
je 0x588bae
mov qword [0x008d6398], rdx
cmp dword [0x0092b0b0], 0
jne 0x588b9b
mov rsi, qword [rsp + 0x38]
mov qword [0x008d63a0], rsi
jmp 0x588bb3
lea rdi, [0x008d63a0]
mov rsi, qword [rsp + 0x38]
call fcn.00465a60
jmp 0x588bb3
mov rsi, qword [rsp + 0x38]
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rsi
mov rdx, qword [rsp + 0x68]
test rdx, rdx
je 0x588be4
movzx edi, byte [rdx + 0x17]
mov r8d, edi
and edi, 0x1f
mov r9, rdi
bts rdi, 7
test r8b, 0x20
cmove r9, rdi
nop
jmp 0x588bf4
xor r9d, r9d
xor edx, edx
xor esi, esi
jmp 0x588bf4
xor r9d, r9d
xor edx, edx
xor esi, esi
mov rax, rdx
mov rbx, rsi
mov rcx, r9
nop dword [rax]
call fcn.0048d1a0
mov rdi, qword [rsp + 0x28]
call fcn.0048edc0
mov eax, 1
mov rbp, qword [rsp + 0x88]
add rsp, 0x90
ret
xor eax, eax
mov rbp, qword [rsp + 0x88]
add rsp, 0x90
ret
cmp edx, 0xf3b50de0
jne 0x588e75
lea rdx, [0x006743c0]
cmp rbx, rdx
jne 0x588e75
mov qword [rsp + 0x20], 0
lea rbx, [rsp + 0x20]
call fcn.00589360
test al, al
je 0x588e28
mov rdx, qword [rsp + 0x40]
nop dword [rax]
test rdx, rdx
je 0x588d13
nop
cmp byte [0x008d6390], 0
je 0x588cc7
mov qword [0x008d6398], rdx
cmp dword [0x0092b0b0], 0
jne 0x588cb1
mov rsi, qword [rsp + 0x38]
mov qword [0x008d63a0], rsi
jmp 0x588ccc
lea rdi, [0x008d63a0]
mov rsi, qword [rsp + 0x38]
nop dword [rax]
call fcn.00465a60
jmp 0x588ccc
mov rsi, qword [rsp + 0x38]
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], rsi
mov rdi, qword [rsp + 0x58]
nop dword [rax + rax]
test rdi, rdi
je 0x588d07
movzx r8d, byte [rdi + 0x17]
mov r9d, r8d
and r8d, 0x1f
mov r10, r8
bts r8, 7
test r9b, 0x20
cmove r10, r8
nop
mov rax, rsi
jmp 0x588d1a
mov rax, rsi
xor r10d, r10d
xor edi, edi
xor esi, esi
jmp 0x588d1a
xor r10d, r10d
xor edi, edi
xor esi, esi
mov rax, rdi
mov rbx, rsi
mov rcx, r10
call fcn.0048d1a0
mov rdx, qword [rsp + 0x20]
nop
and ecx, 0x1f
lea rsi, [rcx - 7]
cmp rsi, 5
ja 0x588e3a
mov rcx, qword [rax]
shl rcx, 3
lea rsi, [rcx - 0x40]
neg rsi
cmp rsi, 0x40
sbb rsi, rsi
neg rcx
mov r8, rdx
shl rdx, cl
and rdx, rsi
shr rdx, cl
and rdx, rsi
cmp r8, rdx
jne 0x588e28
mov rdx, qword [rsp + 0x40]
test rdx, rdx
je 0x588df4
nop
cmp byte [0x008d6390], 0
je 0x588db5
mov qword [0x008d6398], rdx
cmp dword [0x0092b0b0], 0
jne 0x588da2
mov rsi, qword [rsp + 0x38]
mov qword [0x008d63a0], rsi
nop
jmp 0x588dba
lea rdi, [0x008d63a0]
mov rsi, qword [rsp + 0x38]
call fcn.00465a60
jmp 0x588dba
mov rsi, qword [rsp + 0x38]
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], rsi
mov rdx, qword [rsp + 0x48]
test rdx, rdx
je 0x588deb
movzx edi, byte [rdx + 0x17]
mov r8d, edi
and edi, 0x1f
mov r9, rdi
bts rdi, 7
test r8b, 0x20
cmove r9, rdi
nop
jmp 0x588dfb
xor r9d, r9d
xor edx, edx
xor esi, esi
jmp 0x588dfb
xor r9d, r9d
xor edx, edx
xor esi, esi
mov rax, rdx
mov rbx, rsi
mov rcx, r9
call fcn.0048d1a0
mov rdi, qword [rsp + 0x20]
call fcn.0048f4e0
mov eax, 1
mov rbp, qword [rsp + 0x88]
add rsp, 0x90
ret
xor eax, eax
mov rbp, qword [rsp + 0x88]
add rsp, 0x90
ret
mov qword [rsp + 0x30], rcx
lea rax, [0x00699d40]
call fcn.0040d960
mov qword [rax + 8], 0x1a
lea rcx, [0x006d1cd7]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x30]
mov qword [rax + 0x10], rcx
mov rbx, rax
lea rax, [0x00683be0]
call fcn.00436420
lea rax, [0x00679500]
lea rbx, [0x00742840]
call fcn.00436420
mov qword [rsp + 0x30], rcx
lea rax, [0x00699d40]
call fcn.0040d960
mov qword [rax + 8], 0x19
lea rcx, [0x006d1435]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x30]
mov qword [rax + 0x10], rcx
mov rbx, rax
lea rax, [0x00683be0]
nop
call fcn.00436420
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
call fcn.00463740
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
jmp fcn.00588840