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

Disassembly:
lea r12, [rsp - 0x58]
cmp r12, qword [r14 + 0x10]
jbe 0x50e1b1
sub rsp, 0xd8
mov qword [rsp + 0xd0], rbp
lea rbp, [rsp + 0xd0]
mov qword [rsp + 0xe0], rax
lea rcx, [rsi - 2]
cmp rcx, 0x3c
ja 0x50e19d
nop dword [rax]
test rbx, rbx
je 0x50ddf5
mov byte [rsp + 0xf8], dil
mov qword [rsp + 0xe8], rbx
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0x100], rsi
xorps xmm0, xmm0
cvtsi2sd xmm0, rsi
mov rcx, qword [rax + rbx*8 - 8]
mov qword [rsp + 0xa8], rcx
nop
call fcn.0049adc0
mov rax, qword [rsp + 0xa8]
mov rcx, rax
shr rax, 1
or rax, rcx
mov rcx, rax
shr rax, 2
or rax, rcx
mov rcx, rax
shr rax, 4
or rax, rcx
mov rcx, rax
shr rax, 8
or rax, rcx
mov rcx, rax
shr rax, 0x10
or rax, rcx
mov rcx, rax
shr rax, 0x20
or rax, rcx
bsr rax, rax
mov rcx, 0xffffffffffffffff
cmove rax, rcx
mov rcx, qword [rsp + 0xe8]
lea rdx, [rcx - 1]
shl rdx, 6
inc rax
add rax, rdx
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
divsd xmm1, xmm0
cvttsd2si rbx, xmm1
lea rax, [rbx + 1]
lea rdx, [rbx + 2]
movzx ebx, byte [rsp + 0xf8]
movzx esi, bl
test rsi, rsi
cmovne rax, rdx
mov qword [rsp + 0x98], rax
mov rdx, rax
lea rax, [0x00667c00]
mov rbx, rdx
mov rcx, rdx
call fcn.0044a620
mov rbx, qword [rsp + 0x100]
mov rcx, rbx
neg rbx
and rbx, rcx
cmp rcx, rbx
jne 0x50ddd9
bsf rcx, rcx
mov qword [rsp + 0x68], rcx
cmp rcx, 0x40
sbb rdx, rdx
nop
mov esi, 1
shl rsi, cl
and rsi, rdx
dec rsi
mov rdi, qword [rsp + 0xe0]
mov r8, qword [rdi]
mov rbx, qword [rsp + 0x98]
mov r9, qword [rsp + 0xe8]
mov r10, rbx
mov r11d, 1
mov r12d, 0x40
jmp 0x50e02b
mov rdx, rax
mov rax, 0xffffffffffffffff
mov rbx, rdx
xor edx, edx
div rcx
mov rdx, rcx
mov esi, 1
jmp 0x50de28
lea rax, [0x00669260]
nop dword [rax]
call fcn.0040da20
mov byte [rax], 0x30
mov ebx, 1
mov rcx, rbx
mov rbp, qword [rsp + 0xd0]
add rsp, 0xd8
nop
ret
imul rcx, rdx
inc rsi
cmp rax, rcx
jae 0x50de21
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], rsi
mov rax, qword [rsp + 0xe8]
mov rbx, rdx
mov rdi, rcx
mov rcx, rsi
call fcn.0050ea00
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rcx
nop
mov rdx, qword [rsp + 0xe8]
cmp rdx, 1
jne 0x50de9d
mov qword [rsp + 0xb0], 0
mov esi, 1
lea rdi, [rsp + 0xb0]
mov r8d, 1
jmp 0x50deda
lea rcx, [rdx + 4]
mov qword [rsp + 0x60], rcx
lea rax, [0x006674c0]
mov rbx, rdx
call fcn.0044a620
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0xe8]
mov rbx, qword [rsp + 0x70]
mov rsi, rdx
mov rdi, rax
mov r8, qword [rsp + 0x60]
mov rax, qword [rsp + 0xb8]
cmp rdx, rsi
mov r12, rsi
cmovl rsi, rdx
mov rdx, qword [rsp + 0xe0]
cmp rdx, rdi
je 0x50df45
mov qword [rsp + 0x80], r8
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0xc0], rdi
shl rsi, 3
mov rax, rdi
mov rbx, rdx
mov rcx, rsi
call fcn.00466460
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0xc0]
mov r8, qword [rsp + 0x80]
mov r12, qword [rsp + 0xa0]
mov qword [rsp], rax
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rcx
mov rax, rdi
mov rbx, r12
mov rcx, r8
mov rdi, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0x98]
mov r8, rsi
mov r9, qword [rsp + 0x100]
mov r10, qword [rsp + 0x90]
mov r11, qword [rsp + 0x88]
call fcn.0050e200
mov r8, qword [rsp + 0x98]
mov rdi, qword [rsp + 0xc8]
xor eax, eax
nop
jmp 0x50dfa5
inc rax
cmp rax, r8
jae 0x50e014
movzx edx, byte [rax + rdi]
cmp dl, 0x30
je 0x50dfa2
movzx edx, byte [rsp + 0xf8]
test dl, dl
je 0x50dfcf
lea rdx, [rax - 1]
cmp r8, rdx
jbe 0x50e009
mov byte [rax + rdi - 1], 0x2d
jmp 0x50dfd2
mov rdx, rax
cmp rdx, r8
ja 0x50dffe
sub r8, rdx
mov rcx, r8
neg r8
sar r8, 0x3f
and rdx, r8
lea rax, [rdi + rdx]
mov rbx, rcx
mov rbp, qword [rsp + 0xd0]
add rsp, 0xd8
ret
mov rax, rdx
mov rcx, r8
call fcn.00465b60
mov rax, rdx
mov rcx, r8
call fcn.00465aa0
mov rcx, r8
call fcn.00465aa0
inc r11
mov rcx, r12
mov r12, rdx
mov rdx, rbx
mov rbx, r13
cmp r9, r11
jg 0x50e141
jmp 0x50e0d6
test r12, r12
jne 0x50e052
mov r8, qword [rdi + r11*8]
mov r12, rcx
mov r13, rbx
mov rbx, rdx
mov edx, 0x40
jmp 0x50e01c
cmp r12, 0x40
sbb r13, r13
mov r15, qword [rdi + r11*8]
mov rcx, r12
shl r15, cl
and r15, r13
or r8, r15
and r8, rsi
cmp r8, 0x3e
jae 0x50e178
lea r13, [rbx - 1]
lea r15, [0x006cbb47]
movzx r8d, byte [r8 + r15]
cmp r10, r13
jbe 0x50e16d
mov r15, qword [rsp + 0x68]
mov r12, r15
sub r15, rcx
cmp r15, 0x40
mov rcx, rdx
sbb rdx, rdx
mov byte [rbx + rax - 1], r8b
mov r8, qword [rdi + r11*8]
mov rbx, rcx
mov rcx, r15
shr r8, cl
and r8, rdx
lea rdx, [rcx - 0x40]
neg rdx
jmp 0x50e01c
mov byte [rbx + rax - 1], r8b
shr rdi, cl
and rdi, rdx
mov r8, rdi
mov rbx, r9
test r8, r8
je 0x50e0fe
mov rdi, r8
and r8, rsi
cmp r8, 0x3e
jae 0x50e117
lea r9, [rbx - 1]
lea r11, [0x006cbb47]
movzx r8d, byte [r8 + r11]
cmp r10, r9
ja 0x50e0c5
jmp 0x50e10c
mov rdi, rax
mov r8, r10
mov rax, rbx
jmp 0x50dfb3
mov rax, r9
mov rcx, r10
call fcn.00465aa0
mov rax, r8
mov ecx, 0x3e
nop
call fcn.00465ac0
mov byte [rbx + rax - 1], r8b
shr r13, cl
and r13, rdx
sub r12, rcx
mov r9, qword [rsp + 0xe8]
mov r8, r13
mov rbx, r15
cmp rcx, r12
ja 0x50e039
mov r13, r8
and r8, rsi
cmp r8, 0x3e
jae 0x50e190
lea r15, [rbx - 1]
lea r9, [0x006cbb47]
movzx r8d, byte [r8 + r9]
cmp r10, r15
ja 0x50e125
jmp 0x50e185
mov rax, r13
mov rcx, r10
call fcn.00465aa0
mov rax, r8
mov ecx, 0x3e
call fcn.00465ac0
mov rax, r15
mov rcx, r10
call fcn.00465aa0
mov rax, r8
mov ecx, 0x3e
call fcn.00465ac0
lea rax, [0x00667a40]
lea rbx, [0x0072dce0]
call fcn.00436260
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov byte [rsp + 0x20], dil
mov qword [rsp + 0x28], rsi
call fcn.00463440
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
movzx edi, byte [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
jmp fcn.0050dc40