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

Disassembly:
lea r12, [rsp - 0x48]
cmp r12, qword [r14 + 0x10]
jbe 0x57f4d2
sub rsp, 0xc8
mov qword [rsp + 0xc0], rbp
lea rbp, [rsp + 0xc0]
mov qword [rsp + 0xd0], rax
cmp rdi, rbx
jge 0x57f270
jae 0x57f4c6
movzx edx, byte [rdi + rax]
test dl, 0x20
setne r10b
mov byte [rsp + 0x27], r10b
inc rdi
mov r11d, edx
shr dl, 6
movzx edx, dl
mov qword [rsp + 0x48], rdx
and r11d, 0x1f
cmp r11, 0x1f
je 0x57f08e
xor ecx, ecx
xor esi, esi
jmp 0x57f0dc
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xd0], rax
nop
call fcn.0057e760
test rcx, rcx
jne 0x57f248
cmp rax, 0x1f
jl 0x57f1e1
mov rdx, qword [rsp + 0x48]
movzx r10d, byte [rsp + 0x27]
mov r11, rax
mov rsi, rdi
mov rax, qword [rsp + 0xd0]
mov rdi, rbx
mov rbx, qword [rsp + 0xd8]
mov qword [rsp + 0x40], r11
cmp rbx, rdi
jle 0x57f17e
jbe 0x57f4bb
movzx r12d, byte [rax + rdi]
lea r13, [rdi + 1]
test r12b, 0x80
je 0x57f175
and r12d, 0x7f
test r12, r12
je 0x57f112
xor edi, edi
xor r8d, r8d
jmp 0x57f2eb
mov qword [rsp + 0x38], r13
lea rcx, [0x006d5072]
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], 0x21
mov rax, qword [rsp + 0x90]
mov ebx, 0x21
nop
call fcn.0040afc0
mov rbx, qword [rsp + 0x40]
xor ecx, ecx
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x38]
lea r8, [0x007433c0]
mov r9, rax
mov rax, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
and r12d, 0x7f
jmp 0x57f2c3
mov qword [rsp + 0x38], rdi
lea rcx, [0x006d064e]
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0xa8], 0x17
mov rax, qword [rsp + 0xa0]
mov ebx, 0x17
call fcn.0040afc0
mov rbx, qword [rsp + 0x40]
xor ecx, ecx
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x38]
lea r8, [0x007433c0]
mov r9, rax
mov rax, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
nop
ret
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
lea rcx, [0x006cc8ec]
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0xb8], 0xf
mov rax, qword [rsp + 0xb0]
mov ebx, 0xf
call fcn.0040afc0
mov rbx, qword [rsp + 0x40]
xor ecx, ecx
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x38]
lea r8, [0x007433c0]
mov r9, rax
mov rax, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
mov rsi, rbx
mov r8, rcx
mov r9, rdi
mov rbx, rax
xor ecx, ecx
movzx edi, byte [rsp + 0x27]
mov rax, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
mov qword [rsp + 0xe8], rdi
nop
lea rax, [0x00690f40]
call fcn.0040d960
mov qword [rax + 8], 0x29
lea rcx, [0x006d842c]
mov qword [rax], rcx
xor ebx, ebx
mov rcx, rbx
xor edi, edi
mov rsi, qword [rsp + 0xe8]
lea r8, [0x00742c00]
mov r9, rax
mov rax, rcx
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
mov rax, rdx
mov rbx, r11
mov edi, r10d
mov r8, rcx
mov r9, rsi
mov rcx, r12
mov rsi, r13
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
inc rdi
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], r13
cmp rdi, r12
jge 0x57f448
nop
cmp rbx, r13
jle 0x57f3e8
jbe 0x57f4b0
movzx r15d, byte [rax + r13]
inc r13
mov qword [rsp + 0x30], r13
nop dword [rax]
cmp r8, 0x800000
jge 0x57f391
shl r8, 8
or r8, r15
test r8, r8
jne 0x57f2e8
mov qword [rsp + 0x28], r8
lea rcx, [0x006d61d1]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], 0x23
mov rax, qword [rsp + 0x60]
mov ebx, 0x23
call fcn.0040afc0
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x28]
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x30]
lea r8, [0x007433a0]
mov r9, rax
mov rax, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
lea rcx, [0x006ccec7]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], 0x10
mov rax, qword [rsp + 0x70]
mov ebx, 0x10
call fcn.0040afc0
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x30]
lea r8, [0x007433a0]
mov r9, rax
mov rax, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
lea rcx, [0x006d064e]
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], 0x17
mov rax, qword [rsp + 0x80]
mov ebx, 0x17
call fcn.0040afc0
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x30]
lea r8, [0x007433c0]
mov r9, rax
mov rax, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
cmp r8, 0x80
jl 0x57f459
mov r12, r8
jmp 0x57f2c3
lea rcx, [0x006cdb39]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], 0x12
mov rax, qword [rsp + 0x50]
mov ebx, 0x12
call fcn.0040afc0
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x30]
lea r8, [0x007433a0]
mov r9, rax
mov rax, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
mov rax, r13
mov rcx, rbx
call fcn.00465da0
mov rax, rdi
mov rcx, rbx
call fcn.00465da0
mov rax, rdi
mov rcx, rbx
call fcn.00465da0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.00463740
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
nop
jmp fcn.0057f020