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

Disassembly:
lea r12, [rsp - 0x48]
cmp r12, qword [r14 + 0x10]
jbe 0x576cd1
push rbp
mov rbp, rsp
sub rsp, 0xc0
mov qword [rsp + 0xd0], rax
cmp rbx, rdi
jle 0x576a93
jbe 0x576cc5
movzx edx, byte [rax + rdi]
mov r10d, edx
shr dl, 6
mov r11d, r10d
and r10d, 0x1f
inc rdi
movzx edx, dl
mov qword [rsp + 0x48], rdx
test r11b, 0x20
setne r11b
mov byte [rsp + 0x27], r11b
nop word [rax + rax]
cmp r10, 0x1f
je 0x5768cc
xor ecx, ecx
xor esi, esi
jmp 0x57691c
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xd0], rax
nop dword [rax]
call fcn.00575fe0
test rcx, rcx
jne 0x576a72
cmp rax, 0x1f
jl 0x576a12
mov rdx, qword [rsp + 0x48]
movzx r11d, byte [rsp + 0x27]
mov rsi, rdi
mov r10, rax
mov rax, qword [rsp + 0xd0]
mov rdi, rbx
mov rbx, qword [rsp + 0xd8]
mov qword [rsp + 0x40], r10
cmp rbx, rdi
jle 0x5769b7
jbe 0x576cb6
movzx r12d, byte [rax + rdi]
lea r13, [rdi + 1]
test r12b, 0x80
je 0x5769ae
and r12d, 0x7f
test r12, r12
je 0x57694f
xor edi, edi
jmp 0x576b00
mov qword [rsp + 0x38], r13
lea rcx, [0x006cf7a6]
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], 0x21
mov rax, qword [rsp + 0x90]
mov ebx, 0x21
nop dword [rax]
call fcn.0040a940
mov rbx, qword [rsp + 0x40]
xor ecx, ecx
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x38]
lea r8, [0x007424a0]
mov r9, rax
mov rax, qword [rsp + 0x48]
add rsp, 0xc0
pop rbp
ret
and r12d, 0x7f
jmp 0x576adf
mov qword [rsp + 0x38], rdi
lea rcx, [0x006cad65]
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0xa8], 0x17
mov rax, qword [rsp + 0xa0]
mov ebx, 0x17
call fcn.0040a940
mov rbx, qword [rsp + 0x40]
xor ecx, ecx
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x38]
lea r8, [0x007424a0]
mov r9, rax
mov rax, qword [rsp + 0x48]
add rsp, 0xc0
pop rbp
ret
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
lea rcx, [0x006c7400]
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0xb8], 0xf
mov rax, qword [rsp + 0xb0]
mov ebx, 0xf
call fcn.0040a940
mov rbx, qword [rsp + 0x40]
xor ecx, ecx
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x38]
lea r8, [0x007424a0]
mov r9, rax
mov rax, qword [rsp + 0x48]
add rsp, 0xc0
pop rbp
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]
add rsp, 0xc0
pop rbp
ret
mov qword [rsp + 0xe8], rdi
nop
lea rax, [0x006870a0]
call fcn.0040d480
mov qword [rax + 8], 0x29
lea rcx, [0x006d297c]
mov qword [rax], rcx
xor ebx, ebx
mov rcx, rbx
xor edi, edi
mov rsi, qword [rsp + 0xe8]
lea r8, [0x00741740]
mov r9, rax
mov rax, rcx
add rsp, 0xc0
pop rbp
ret
mov rax, rdx
mov rbx, r10
mov edi, r11d
mov r8, rcx
mov r9, rsi
mov rcx, r12
mov rsi, r13
add rsp, 0xc0
pop rbp
ret
dec r12
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], r13
test r12, r12
jle 0x576c4a
cmp rbx, r13
jle 0x576bf1
nop dword [rax]
jbe 0x576cab
movzx r15d, byte [rax + r13]
inc r13
mov qword [rsp + 0x30], r13
cmp rdi, 0x800000
jge 0x576b9d
shl rdi, 8
or rdi, r15
test rdi, rdi
jne 0x576afd
mov qword [rsp + 0x28], rdi
lea rcx, [0x006d0449]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], 0x23
mov rax, qword [rsp + 0x60]
mov ebx, 0x23
call fcn.0040a940
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x28]
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x30]
lea r8, [0x00742660]
mov r9, rax
mov rax, qword [rsp + 0x48]
add rsp, 0xc0
pop rbp
ret
lea rcx, [0x006c79cd]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], 0x10
mov rax, qword [rsp + 0x70]
mov ebx, 0x10
nop dword [rax]
call fcn.0040a940
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x30]
lea r8, [0x00742660]
mov r9, rax
mov rax, qword [rsp + 0x48]
add rsp, 0xc0
pop rbp
ret
lea rcx, [0x006cad65]
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], 0x17
mov rax, qword [rsp + 0x80]
mov ebx, 0x17
call fcn.0040a940
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x30]
lea r8, [0x007424a0]
mov r9, rax
mov rax, qword [rsp + 0x48]
add rsp, 0xc0
pop rbp
ret
cmp rdi, 0x80
jl 0x576c5b
mov r12, rdi
jmp 0x576adf
lea rcx, [0x006c8536]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], 0x12
mov rax, qword [rsp + 0x50]
mov ebx, 0x12
call fcn.0040a940
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x30]
lea r8, [0x00742660]
mov r9, rax
mov rax, qword [rsp + 0x48]
add rsp, 0xc0
pop rbp
ret
mov rax, r13
mov rcx, rbx
call fcn.004601e0
mov rax, rdi
mov rcx, rbx
nop dword [rax]
call fcn.004601e0
mov rax, rdi
mov rcx, rbx
call fcn.004601e0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.0045df00
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
nop
jmp fcn.00576860