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

Disassembly:
lea r12, [rsp - 0x70]
cmp r12, qword [r14 + 0x10]
jbe 0x51de26
sub rsp, 0xf0
mov qword [rsp + 0xe8], rbp
lea rbp, [rsp + 0xe8]
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x140], r9
mov qword [rsp + 0x148], r10
mov qword [rsp + 0xc8], r11
mov qword [rsp + 0x128], rdi
mov rdx, qword [rsp + 0xf8]
test rdx, rdx
je 0x51d818
mov qword [rsp + 0x138], r8
mov rdx, qword [rsp + 0x100]
lea r12, [rdx - 1]
mov r13, qword [rsp + 0xf8]
xor r15d, r15d
xor r15d, r15d
mov qword [rsp + 0x80], r15
xor r15d, r15d
mov qword [rsp + 0xd8], r15
xor r15d, r15d
jmp 0x51db4c
mov qword [rsp + 0xc0], rsi
cmp r9, 0xa
jne 0x51d82e
mov rdx, rsi
jmp 0x51d960
mov rdx, rsi
jmp 0x51d84c
mov rdx, r12
mov rdi, r11
mov r9, qword [rsp + 0x140]
mov r11, qword [rsp + 0xc8]
mov rsi, r13
test rbx, rbx
je 0x51d8a0
mov qword [rsp + 0x98], rsi
mov rdi, rax
mov rsi, rbx
mov r8, rcx
mov r9, r11
call fcn.0051ebe0
mov rdx, qword [rsp + 0x140]
mov r10, qword [rsp + 0x148]
mov r11, qword [rsp + 0x128]
mov r12, qword [rsp + 0xc0]
mov r13, qword [rsp + 0x98]
xor esi, esi
jmp 0x51d8e0
mov byte [rsi + rdi - 1], 0x30
mov rsi, rax
nop
test rsi, rsi
jle 0x51d8b0
lea rax, [rsi - 1]
cmp rdx, rax
ja 0x51d896
jmp 0x51d8c1
mov rbp, qword [rsp + 0xe8]
add rsp, 0xf0
nop
ret
mov rcx, rdx
call fcn.00465ec0
mov byte [r13 + r11 - 1], dl
inc rsi
mov rdx, rdi
mov r10, r9
mov rdi, rax
mov r13, r15
mov rax, r8
cmp r10, rsi
jle 0x51d833
test r13, r13
jle 0x51d833
test rdx, rdx
je 0x51d940
mov r8, rax
mov rax, rdi
mov r15, rdx
xor edx, edx
div r15
cmp rdx, 0x3e
jae 0x51d931
mov rdi, r15
lea r15, [r13 - 1]
mov r9, r10
lea r10, [0x0073028d]
movzx edx, byte [r10 + rdx]
cmp r12, r15
ja 0x51d8c9
mov rax, r15
mov rcx, r12
call fcn.00465ec0
mov rax, rdx
mov ecx, 0x3e
call fcn.00465ee0
nop
call fcn.00435240
mov rdx, r11
mov rdi, r10
mov r10, qword [rsp + 0x148]
mov r11, qword [rsp + 0xc8]
mov rsi, r12
nop
test rbx, rbx
je 0x51d8a0
mov qword [rsp + 0x98], rsi
mov rdi, rax
mov rsi, rbx
mov r8, rcx
mov r9, r11
nop dword [rax]
call fcn.0051ebe0
mov rdx, qword [rsp + 0x148]
mov r10, qword [rsp + 0x128]
mov r11, qword [rsp + 0xc0]
mov r12, qword [rsp + 0x98]
xor esi, esi
jmp 0x51d9c1
lea r15d, [rdi + 0x30]
mov byte [r12 + r10 - 1], r15b
inc rsi
mov rax, r8
mov rdi, rdx
mov r12, r13
mov rdx, r9
cmp rdx, rsi
jle 0x51d945
test r12, r12
jle 0x51d945
lea r13, [r12 - 1]
mov r8, rax
movabs rax, 0xcccccccccccccccd
mov r9, rdx
mul rdi
shr rdx, 3
lea r15, [rdx + rdx*4]
shl r15, 1
sub rdi, r15
cmp r11, r13
ja 0x51d9a9
mov rax, r13
mov rcx, r11
call fcn.00465ec0
mov qword [rsp + 0xa0], r13
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0x80], r8
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0xd8], rdi
mov qword [rsp], r12
mov rdx, qword [rsp + 0x90]
mov qword [rsp + 8], rdx
mov r12, qword [rsp + 0x108]
mov qword [rsp + 0x10], r12
mov r12, qword [rsp + 0x138]
sub r12, r13
sub r15, r13
mov r9, r12
neg r12
sar r12, 0x3f
and r12, r13
mov rdx, qword [rsp + 0x128]
add r12, rdx
mov r11, qword [rsp + 0xc8]
mov rax, rdi
mov rbx, rsi
mov rcx, r8
mov rdi, r12
mov rsi, r15
mov r8, r9
mov r9, qword [rsp + 0x140]
mov r10, qword [rsp + 0x148]
call fcn.0051d780
mov rdx, qword [rsp + 0x100]
mov r12, qword [rsp + 0xf8]
mov r13, qword [rsp + 0xa0]
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x78]
mov r15, qword [rsp + 0x90]
mov rsi, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0xe0]
mov r8, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0x128]
mov r8, qword [rsp + 0x138]
mov r9, qword [rsp + 0x140]
mov r10, qword [rsp + 0x148]
mov r11, qword [rsp + 0xc8]
mov r13, r12
mov rbx, qword [rsp + 0xb0]
mov rax, qword [rsp + 0xe0]
mov rcx, rsi
mov r12, r15
mov r15, qword [rsp + 0x78]
mov rsi, qword [rsp + 0xa0]
cmp qword [0x00971558], rbx
jge 0x51d818
mov qword [rsp + 0x78], r15
lea r15, [rbx - 1]
test r15, r15
jl 0x51dbe4
mov r13, qword [rax + rbx*8 - 8]
mov qword [rsp + 0xb8], r13
shr r13, 1
mov rdx, qword [rsp + 0xb8]
or r13, rdx
mov rdx, r13
shr r13, 2
or r13, rdx
mov rdx, r13
shr r13, 4
or r13, rdx
mov rdx, r13
shr r13, 8
or r13, rdx
mov rdx, r13
shr r13, 0x10
or r13, rdx
mov rdx, r13
shr r13, 0x20
or r13, rdx
bsr rdx, r13
mov r13, 0xffffffffffffffff
cmove rdx, r13
shl r15, 6
lea rdx, [rdx + r15]
lea rdx, [rdx + 1]
mov r13, qword [rsp + 0xf8]
mov r15, rdx
mov rdx, qword [rsp + 0x100]
jmp 0x51dbe7
xor r15d, r15d
mov qword [rsp + 0x60], r15
sar r15, 1
mov qword [rsp + 0x88], r15
jmp 0x51dda9
mov r12, qword [rsp + 0x90]
mov r13, qword [rsp + 0xf8]
cmp rdx, r12
jbe 0x51de0e
mov qword [rsp + 0xc0], rsi
lea r15, [r12 + r12*4]
mov qword [rsp + 0xb0], r15
mov r15, qword [r13 + r15*8 + 0x18]
mov r13, qword [rsp + 0x60]
cmp r15, r13
jge 0x51dc45
xor r13d, r13d
nop dword [rax + rax]
jmp 0x51dce7
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], rcx
mov rdx, qword [rsp + 0xb0]
mov r9, qword [rsp + 0xf8]
mov r10, qword [r9 + rdx*8]
mov r11, qword [r9 + rdx*8 + 8]
mov rdx, qword [r9 + rdx*8 + 0x10]
mov rdi, rax
mov rsi, rbx
mov r8, rcx
mov rax, r10
mov rbx, r11
mov rcx, rdx
call fcn.00515a60
test rax, rax
setge dl
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0x128]
mov r8, qword [rsp + 0x138]
mov r9, qword [rsp + 0x140]
mov r10, qword [rsp + 0x148]
mov r11, qword [rsp + 0xc8]
mov r12, qword [rsp + 0x90]
mov r13d, edx
mov rdx, qword [rsp + 0x100]
test r13b, r13b
je 0x51dd00
dec r12
test r12, r12
jl 0x51ddfb
nop dword [rax + rax]
cmp rdx, r12
jbe 0x51ddf0
mov qword [rsp + 0x90], r12
lea rdx, [r12 + r12*4]
mov qword [rsp + 0xb0], rdx
mov r13, qword [rsp + 0xf8]
mov r15, qword [r13 + rdx*8]
mov r12, qword [r13 + rdx*8 + 8]
mov rdx, qword [r13 + rdx*8 + 0x10]
mov qword [rsp], r15
mov qword [rsp + 8], r12
mov qword [rsp + 0x10], rdx
mov r8, qword [rsp + 0x80]
mov r9, rax
mov r10, rbx
mov r11, rcx
mov rdi, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0x78]
call fcn.0051e820
mov rdx, qword [rsp + 0xb0]
mov r12, qword [rsp + 0xf8]
mov rdx, qword [r12 + rdx*8 + 0x20]
mov r13, qword [rsp + 0xc0]
mov r15, r13
sub r13, rdx
cmp r15, r13
jae 0x51da09
jmp 0x51dde5
mov r12, qword [rsp + 0xf8]
mov r13, r12
mov r12, r15
mov r15, qword [rsp + 0x88]
mov qword [rsp + 0x90], r12
test r12, r12
jle 0x51dc0c
lea r15, [r12 - 1]
nop
cmp rdx, r15
jbe 0x51de19
lea r12, [r12 + r12*4]
mov r12, qword [r13 + r12*8 - 0x10]
mov r13, qword [rsp + 0x88]
cmp r12, r13
jg 0x51dd93
nop dword [rax + rax]
jmp 0x51dbfc
mov rax, r13
mov rcx, r15
call fcn.00465f80
mov rax, r12
mov rcx, rdx
call fcn.00465ec0
lea rax, [0x006bb4c0]
lea rbx, [0x007f0d50]
call fcn.00436580
mov rax, r12
mov rcx, rdx
call fcn.00465ec0
mov rax, r15
mov rcx, rdx
nop
call fcn.00465ec0
nop
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x58], r10
mov qword [rsp + 0x60], r11
call fcn.00463860
mov rax, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
mov r10, qword [rsp + 0x58]
mov r11, qword [rsp + 0x60]
jmp fcn.0051d780