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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x18]
cmp rax, qword [rcx + 0x10]
jbe 0x59d5f3
sub rsp, 0x98
mov qword [rsp + 0x90], rbp
lea rbp, [rsp + 0x90]
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rax + 0x28]
mov rdx, qword [rsp + 0xe0]
mov qword [rsp], rdx
call rcx
mov rax, qword [rsp + 8]
mov rcx, qword [rsp + 0xb8]
lea rdx, [rcx + 7]
sar rdx, 0x3f
shr rdx, 0x3d
lea rdx, [rdx + rcx]
lea rdx, [rdx + 7]
mov rbx, qword [rsp + 0xa8]
nop dword [rax]
cmp rax, rbx
jne 0x59d546
sar rdx, 3
mov rsi, qword [rsp + 0xc8]
lea rdi, [rax + rsi]
lea rdi, [rdi + 2]
nop dword [rax]
cmp rdx, rdi
jl 0x59d4e1
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x60], rdx
lea rax, [0x00614000]
mov qword [rsp], rax
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rdx
call fcn.0044dcc0
mov rax, qword [rsp + 0x18]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0xc8]
mov rbx, rdx
sub rdx, rcx
mov rsi, qword [rsp + 0x40]
sub rdx, rsi
lea rsi, [rdx + rcx]
lea rdi, [rdx + rcx]
lea rdi, [rdi - 1]
nop dword [rax]
cmp rbx, rdi
jb 0x59d5e7
lea r8, [rbx - 1]
cmp rbx, r8
jb 0x59d5dc
cmp rdi, r8
ja 0x59d5d1
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x70], r8
mov qword [rsp + 0x68], rsi
lea rax, [0x00616ce0]
mov qword [rsp], rax
call fcn.0040e560
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rax + 0x38]
mov rdx, qword [rsp + 0xe0]
mov qword [rsp], rdx
mov qword [rsp + 0x10], 8
mov qword [rsp + 0x18], 8
call rcx
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rax + 0x38]
mov rdx, qword [rsp + 0xe0]
mov qword [rsp], rdx
mov rbx, qword [rsp + 0xa0]
mov qword [rsp + 8], rbx
mov rbx, qword [rsp + 0xa8]
mov qword [rsp + 0x10], rbx
mov rbx, qword [rsp + 0xb0]
mov qword [rsp + 0x18], rbx
call rcx
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rax + 0x38]
mov rdx, qword [rsp + 0xe0]
mov qword [rsp], rdx
mov rbx, qword [rsp + 0xc0]
mov qword [rsp + 8], rbx
mov rsi, qword [rsp + 0xc8]
mov qword [rsp + 0x10], rsi
mov rdi, qword [rsp + 0xd0]
mov qword [rsp + 0x18], rdi
call rcx
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rax + 0x30]
mov rdx, qword [rsp + 0xe0]
mov qword [rsp], rdx
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
sub rbx, rsi
inc rbx
mov rsi, rbx
neg rbx
sar rbx, 0x3f
mov r8, qword [rsp + 0x58]
and rbx, r8
mov r9, qword [rsp + 0x88]
add rbx, r9
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], 0
mov qword [rsp + 0x18], rsi
call rcx
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rax + 0x20]
mov rdx, qword [rsp + 0x20]
mov qword [rsp + 0x80], rdx
mov rbx, qword [rsp + 0x28]
mov qword [rsp + 0x48], rbx
mov rsi, qword [rsp + 0x30]
mov qword [rsp + 0x50], rsi
mov rdi, qword [rsp + 0xe0]
mov qword [rsp], rdi
call rcx
mov rax, qword [rsp + 0x78]
lea rcx, [rax - 2]
mov rdx, qword [rsp + 0x58]
nop dword [rax]
cmp rcx, rdx
jae 0x59d5c6
mov rbx, qword [rsp + 0x88]
mov byte [rax + rbx - 2], 1
lea rsi, [rax - 1]
nop word [rax + rax]
cmp rdx, rsi
jb 0x59d5bb
mov rcx, qword [rsp + 0x60]
sub rcx, rax
lea rax, [rcx + 1]
neg rax
sar rax, 0x3f
and rsi, rax
lea rax, [rsi + rbx]
mov rcx, qword [rsp + 0xc0]
cmp rax, rcx
je 0x59d3eb
mov qword [rsp], rax
mov qword [rsp + 8], rcx
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x10], rax
call fcn.0046d6c0
mov rax, qword [rsp + 0x88]
mov qword [rsp], rax
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 8], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x10], rcx
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x18], rdx
mov rdx, qword [rsp + 0xe0]
mov qword [rsp + 0x20], rdx
mov rdx, qword [rsp + 0x80]
mov qword [rsp + 0x28], rdx
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 0x30], rdx
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x38], rdx
call fcn.0059e4e0
mov rax, qword [rsp + 0x88]
movzx ecx, byte [rax]
mov rdx, qword [rsp + 0x60]
mov rbx, rdx
shl rdx, 3
mov rsi, qword [rsp + 0xb8]
sub rdx, rsi
test rdx, rdx
jl 0x59d5b6
cmp rdx, 8
sbb esi, esi
mov edi, ecx
mov rcx, rdx
mov r8d, 0xffffffff
shr r8b, cl
and r8d, esi
and edi, r8d
mov byte [rax], dil
mov rdx, qword [rsp + 0x70]
nop dword [rax + rax]
cmp rbx, rdx
jbe 0x59d5ab
mov byte [rbx + rax - 1], 0xbc
mov qword [rsp + 0xe8], rax
mov qword [rsp + 0xf0], rbx
mov qword [rsp + 0xf8], rbx
xorps xmm0, xmm0
movups xmmword [rsp + 0x100], xmm0
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
lea rax, [0x00625ba0]
mov qword [rsp], rax
call fcn.0040e560
mov rax, qword [rsp + 8]
mov qword [rax + 8], 0x30
lea rcx, [0x00667752]
mov qword [rax], rcx
mov qword [rsp + 0xe8], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xf0], xmm0
lea rcx, [0x006a4760]
mov qword [rsp + 0x100], rcx
mov qword [rsp + 0x108], rax
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
lea rax, [0x00625ba0]
mov qword [rsp], rax
call fcn.0040e560
mov rax, qword [rsp + 8]
mov qword [rax + 8], 0x30
lea rcx, [0x00667722]
mov qword [rax], rcx
mov qword [rsp + 0xe8], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xf0], xmm0
lea rcx, [0x006a4760]
mov qword [rsp + 0x100], rcx
mov qword [rsp + 0x108], rax
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
mov rax, rdx
mov rcx, rbx
call fcn.0046cdc0
call fcn.00436da0
mov rax, rsi
mov rcx, rdx
call fcn.0046ce80
mov rax, rcx
mov rcx, rdx
call fcn.0046cdc0
mov rax, rdi
mov rcx, r8
call fcn.0046ce80
mov rcx, r8
mov rdx, rbx
call fcn.0046ce40
mov rcx, rdi
mov rdx, rbx
call fcn.0046ce40
nop
call fcn.0046abe0
jmp fcn.0059d0e0