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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x4b5666
sub rsp, 0x48
mov qword [rsp + 0x40], rbp
lea rbp, [rsp + 0x40]
movzx ecx, byte [rsp + 0x68]
test cl, cl
je 0x4b55da
mov rcx, qword [rsp + 0x58]
test rcx, rcx
setl dl
test dl, dl
je 0x4b51a7
neg rcx
mov rbx, qword [rsp + 0x50]
lea rsi, [rbx + 0x28]
test byte [rsi], al
movzx edi, byte [rbx + 8]
test dil, dil
je 0x4b55be
mov rdi, qword [rbx + 0x18]
add rdi, qword [rbx + 0x20]
add rdi, 3
cmp rdi, 0x44
jg 0x4b5578
mov eax, 0x44
mov edi, 0x44
movzx r8d, byte [rbx + 9]
test r8b, r8b
je 0x4b552b
mov r8, qword [rbx + 0x20]
test r8, r8
jne 0x4b51ff
test rcx, rcx
je 0x4b54f6
mov r9, qword [rsp + 0x60]
cmp r9, 8
jg 0x4b5446
cmp r9, 2
jne 0x4b5405
mov r10, rdi
jmp 0x4b5236
mov r12, rcx
and rcx, 1
lea r13, [rcx + 0x30]
mov byte [rdi + rsi - 1], r13b
shr r12, 1
mov rcx, r12
mov rdi, r11
cmp rcx, 2
jb 0x4b524a
lea r11, [rdi - 1]
cmp r11, r10
jb 0x4b521d
jmp 0x4b562c
mov r11, qword [rsp + 0x78]
cmp rcx, r11
jae 0x4b5625
lea r12, [rdi - 1]
mov r13, qword [rsp + 0x70]
movzx ecx, byte [r13 + rcx]
cmp r12, r10
jae 0x4b5625
mov byte [rdi + rsi - 1], cl
jmp 0x4b5282
mov byte [r12 + rsi - 1], 0x30
mov r10, rcx
mov r12, rdi
test r12, r12
jle 0x4b53fd
mov rcx, r10
sub r10, r12
cmp r8, r10
jle 0x4b52a5
lea rdi, [r12 - 1]
cmp rdi, rcx
jb 0x4b5276
jmp 0x4b561e
movzx edi, byte [rbx + 0xc]
test dil, dil
je 0x4b53f3
cmp r9, 8
jne 0x4b53a6
cmp r12, rcx
jae 0x4b5617
movzx edi, byte [r12 + rsi]
cmp dil, 0x30
je 0x4b539c
lea rdi, [r12 - 1]
cmp rdi, rcx
jae 0x4b5610
mov byte [r12 + rsi - 1], 0x30
test dl, dl
je 0x4b5359
lea rdx, [rdi - 1]
cmp rdx, rcx
jae 0x4b55fb
mov byte [rdi + rsi - 1], 0x2d
movzx edi, byte [rbx + 0xe]
mov byte [rbx + 0xe], 0
cmp rdx, rcx
ja 0x4b55e6
mov byte [rsp + 0x36], dil
mov qword [rsp], rbx
sub rax, rdx
mov rdi, rax
neg rax
sar rax, 0x3f
and rax, rdx
add rax, rsi
mov qword [rsp + 8], rax
sub rcx, rdx
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rdi
call fcn.004b45a0
movzx eax, byte [rsp + 0x36]
mov rcx, qword [rsp + 0x50]
mov byte [rcx + 0xe], al
mov rbp, qword [rsp + 0x40]
add rsp, 0x48
ret
movzx edx, byte [rbx + 0xb]
test dl, dl
je 0x4b5375
lea rdx, [rdi - 1]
cmp rdx, rcx
jae 0x4b55f4
mov byte [rdi + rsi - 1], 0x2b
jmp 0x4b52fe
movzx edx, byte [rbx + 0xd]
test dl, dl
je 0x4b5394
lea rdx, [rdi - 1]
cmp rdx, rcx
jae 0x4b55ed
mov byte [rdi + rsi - 1], 0x20
jmp 0x4b52fe
mov rdx, rdi
jmp 0x4b52fe
test dl, dl
mov rdi, r12
jmp 0x4b52ea
cmp r9, 0x10
jne 0x4b53e9
cmp r11, 0x10
jbe 0x4b5609
lea rdi, [r12 - 1]
movzx r8d, byte [r13 + 0x10]
cmp rdi, rcx
jae 0x4b5609
mov byte [r12 + rsi - 1], r8b
lea rdi, [r12 - 2]
cmp rdi, rcx
jae 0x4b5602
mov byte [r12 + rsi - 2], 0x30
test dl, dl
jmp 0x4b52ea
test dl, dl
mov rdi, r12
jmp 0x4b52ea
test dl, dl
mov rdi, r12
jmp 0x4b52ea
mov rcx, r10
jmp 0x4b52a5
cmp r9, 8
jne 0x4b5648
mov r10, rdi
jmp 0x4b542e
mov r12, rcx
and rcx, 7
lea r13, [rcx + 0x30]
mov byte [rdi + rsi - 1], r13b
shr r12, 3
mov rcx, r12
mov rdi, r11
cmp rcx, 8
jb 0x4b524a
lea r11, [rdi - 1]
cmp r11, r10
jb 0x4b5414
jmp 0x4b5633
cmp r9, 0xa
jne 0x4b549e
mov r10, rdi
jmp 0x4b5461
mov byte [rdi + rsi - 1], cl
mov rax, r12
mov rcx, rdx
mov rdi, r11
mov edx, r13d
cmp rcx, 0xa
jb 0x4b524a
lea r11, [rdi - 1]
mov r12, rax
movabs rax, 0xcccccccccccccccd
mov r13d, edx
mul rcx
shr rdx, 3
add rcx, 0x30
lea r14, [rdx + rdx*4]
shl r14, 1
sub rcx, r14
cmp r11, r10
jb 0x4b5451
jmp 0x4b5641
cmp r9, 0x10
jne 0x4b5648
mov r10, qword [rsp + 0x78]
mov r11, qword [rsp + 0x70]
mov r12, rdi
jmp 0x4b54c5
mov byte [rsi + rdi - 1], cl
shr r13, 4
mov rcx, r13
mov rdi, r14
cmp rcx, 0x10
jb 0x4b54ee
mov r13, rcx
and rcx, 0xf
cmp rcx, r10
jae 0x4b563a
lea r14, [rdi - 1]
movzx ecx, byte [r11 + rcx]
cmp r14, r12
jb 0x4b54b7
jmp 0x4b563a
mov r10, r12
jmp 0x4b524a
movzx eax, byte [rbx + 0xe]
mov byte [rsp + 0x35], al
mov byte [rbx + 0xe], 0
mov rcx, qword [rbx + 0x18]
mov qword [rsp + 8], rcx
mov qword [rsp], rbx
call fcn.004b4420
movzx eax, byte [rsp + 0x35]
mov rcx, qword [rsp + 0x50]
mov byte [rcx + 0xe], al
mov rbp, qword [rsp + 0x40]
add rsp, 0x48
ret
movzx r8d, byte [rbx + 0xe]
test r8b, r8b
je 0x4b5570
movzx r8d, byte [rbx + 8]
test r8b, r8b
je 0x4b5568
mov r8, qword [rbx + 0x18]
test dl, dl
je 0x4b554f
dec r8
jmp 0x4b51ff
movzx r9d, byte [rbx + 0xb]
test r9b, r9b
jne 0x4b5547
movzx r9d, byte [rbx + 0xd]
test r9b, r9b
jne 0x4b5547
jmp 0x4b51ff
xor r8d, r8d
jmp 0x4b51ff
xor r8d, r8d
jmp 0x4b51ff
mov byte [rsp + 0x37], dl
mov qword [rsp + 0x38], rcx
lea rax, [0x00649b20]
mov qword [rsp], rax
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rdi
call fcn.0043e2f0
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x18]
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x38]
movzx edx, byte [rsp + 0x37]
mov rbx, qword [rsp + 0x50]
jmp 0x4b51df
movzx edi, byte [rbx + 9]
test dil, dil
jne 0x4b51bf
mov eax, 0x44
mov edi, 0x44
jmp 0x4b51df
mov rcx, qword [rsp + 0x58]
xor edx, edx
jmp 0x4b51a0
call fcn.00429bc0
ud2
call fcn.00429b50
ud2
call fcn.00429b50
ud2
call fcn.00429b50
ud2
call fcn.00429b50
ud2
call fcn.00429b50
ud2
call fcn.00429b50
ud2
call fcn.00429b50
ud2
call fcn.00429b50
ud2
call fcn.00429b50
ud2
call fcn.00429b50
ud2
call fcn.00429b50
ud2
call fcn.00429b50
ud2
call fcn.00429b50
ud2
lea rax, [0x00649960]
mov qword [rsp], rax
lea rax, [0x006f66d0]
mov qword [rsp + 8], rax
call fcn.0042aba0
ud2
call fcn.00452950
jmp fcn.004b5160