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

Disassembly:
lea r12, [rsp - 0x60]
cmp r12, qword [r14 + 0x10]
jbe 0x4574a6
push rbp
mov rbp, rsp
sub rsp, 0xd8
mov rdx, qword [rax + 0x18]
nop
test rdx, rdx
je 0x45715c
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0xd0], rbx
mov qword [rsp + 0xe8], rax
mov rcx, qword [rax]
mov qword [rsp + 0x90], rcx
mov rdx, qword [rax + 8]
mov qword [rsp + 0x88], rdx
mov ebx, dword [rcx]
mov rax, rdx
call fcn.00459fc0
mov rdi, qword [rsp + 0x50]
cmp rax, rdi
jne 0x456eb0
mov eax, 0xffffffff
jmp 0x456edf
dec rdi
mov qword [rsp + 0x50], rdi
mov rax, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x88]
mov ecx, 1
mov rsi, qword [rsp + 0xd0]
call fcn.0045b080
mov rdi, qword [rsp + 0x50]
mov qword [rsp + 0x50], rdi
mov rcx, qword [rsp + 0xe8]
mov rdx, qword [rcx + 0x38]
sub rdx, qword [rcx + 0x28]
cmp eax, 0xffffffff
mov esi, 0
cmove eax, esi
mov dword [rsp + 0x28], eax
test rdx, rdx
jbe 0x456fba
mov rsi, qword [rsp + 0x90]
cmp byte [rsi + 0x2b], 1
ja 0x456f27
mov r9, qword [rsp + 0x88]
xor r10d, r10d
jmp 0x456f5e
lea r8, [rsi + 0x2b]
mov r9, qword [rsp + 0x88]
mov r10, qword [r9 + 0x140]
mov r11d, dword [rsi + 0x1c]
lea r8, [r8 + r11*4]
lea r8, [r8 + 5]
mov r8d, dword [r8]
add r10, r8
cmp r8d, 0xffffffff
sete r8b
movzx r8d, r8b
dec r8
and r10, r8
mov qword [rsp + 0x58], rdx
test r10, r10
je 0x4573ec
mov r8d, dword [r10]
test r8d, r8d
jle 0x4573ec
mov edx, dword [r10 + 4]
nop dword [rax]
test edx, edx
jle 0x456fb4
mov qword [rsp + 0xc0], r10
test eax, eax
jl 0x45730a
cmp r8d, eax
jle 0x45730a
lea ebx, [rdx + 7]
sar ebx, 3
imul ebx, eax
movsxd rbx, ebx
nop
lea rbx, [r10 + rbx]
lea rbx, [rbx + 8]
jmp 0x456fbe
xor edx, edx
xor ebx, ebx
jmp 0x456fbe
xor edx, edx
xor ebx, ebx
mov qword [rsp + 0xc8], rbx
mov dword [rsp + 0x2c], edx
mov rax, rcx
call fcn.00456b60
test eax, eax
jle 0x4570a6
test rbx, rbx
je 0x456ff7
mov rdx, qword [rsp + 0x90]
mov r11, qword [rsp + 0x88]
mov r10d, eax
jmp 0x4570b9
mov rdx, qword [rsp + 0x90]
cmp byte [rdx + 0x2b], 0
ja 0x457012
mov r11, qword [rsp + 0x88]
xor r12d, r12d
jmp 0x457049
lea r10, [rdx + 0x2b]
mov r11, qword [rsp + 0x88]
mov r12, qword [r11 + 0x140]
mov r13d, dword [rdx + 0x1c]
lea r10, [r10 + r13*4]
lea r10, [r10 + 1]
mov r10d, dword [r10]
add r12, r10
cmp r10d, 0xffffffff
sete r10b
movzx r10d, r10b
dec r10
and r12, r10
test r12, r12
je 0x45725b
mov r10d, dword [r12]
test r10d, r10d
jle 0x45725b
mov qword [rsp + 0xb8], r12
mov r13d, dword [rsp + 0x28]
test r13d, r13d
jl 0x457185
cmp r10d, r13d
jle 0x457185
mov r10d, dword [r12 + 4]
test r10d, r10d
jne 0x45708d
xor r10d, r10d
jmp 0x4570b9
lea r15d, [r10 + 7]
sar r15d, 3
imul r13d, r15d
movsxd r13, r13d
lea rbx, [r12 + r13]
lea rbx, [rbx + 8]
jmp 0x4570b9
mov rdx, qword [rsp + 0x90]
mov r11, qword [rsp + 0x88]
mov r10d, eax
test cl, cl
je 0x4570cb
mov eax, 1
lea r11, [0x01c09e30]
jmp 0x457138
cmp byte [rdx + 0x2b], 2
ja 0x4570d6
xor r11d, r11d
jmp 0x457100
lea r12, [rdx + 0x2b]
mov r11, qword [r11 + 0x140]
mov edx, dword [rdx + 0x1c]
lea rdx, [r12 + rdx*4]
lea rdx, [rdx + 9]
mov edx, dword [rdx]
add r11, rdx
cmp edx, 0xffffffff
sete dl
movzx edx, dl
dec rdx
and r11, rdx
test r11, r11
je 0x457133
mov rdx, qword [r11]
nop
test rdx, rdx
jl 0x457180
mov qword [rsp + 0x60], rdx
mov eax, 0x10
mul rdx
jo 0x457176
lea rdx, [r11 + 8]
mov r11, rdx
neg rdx
cmp rax, rdx
ja 0x457176
mov rax, qword [rsp + 0x60]
jmp 0x457138
xor eax, eax
xor r11d, r11d
mov ecx, r10d
mov rdi, rbx
mov rsi, r11
mov r8, rax
mov r9, r8
mov eax, dword [rsp + 0x2c]
mov rbx, qword [rsp + 0xc8]
add rsp, 0xd8
pop rbp
ret
xor eax, eax
xor ebx, ebx
mov ecx, eax
mov rdi, rbx
xor esi, esi
xor r8d, r8d
mov r9, r8
add rsp, 0xd8
pop rbp
ret
call fcn.00467d60
nop dword [rax + rax]
call fcn.00467d60
movsxd rcx, r13d
mov qword [rsp + 0x80], rcx
mov ebx, dword [rdx + 4]
mov rax, r11
call fcn.0045a0e0
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x30], rbx
mov rcx, qword [rsp + 0xb8]
movsxd rcx, dword [rcx]
mov qword [rsp + 0x78], rcx
call fcn.0043f620
lea rax, [0x0103fabb]
mov ebx, 0x13
call fcn.0043fea0
mov rax, qword [rsp + 0x80]
call fcn.0043fcc0
lea rax, [0x0102e6eb]
mov ebx, 5
call fcn.0043fea0
mov rax, qword [rsp + 0x78]
call fcn.0043fcc0
lea rax, [0x0104e54a]
mov ebx, 0x1c
call fcn.0043fea0
mov rax, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x30]
call fcn.0043fea0
lea rax, [0x010360ca]
mov ebx, 0xb
call fcn.0043fea0
mov rax, qword [rsp + 0x50]
call fcn.0043fd20
lea rax, [0x0102bf13]
mov ebx, 2
call fcn.0043fea0
call fcn.0043f680
lea rax, [0x0103ba97]
mov ebx, 0x10
call fcn.0043dc80
shl eax, 3
movsxd rcx, eax
mov qword [rsp + 0x70], rcx
mov ebx, dword [rdx + 4]
mov rax, r11
call fcn.0045a0e0
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x38], rbx
mov rcx, qword [rsp + 0xe8]
mov rcx, qword [rcx + 0x40]
mov qword [rsp + 0x68], rcx
call fcn.0043f620
lea rax, [0x0103a626]
mov ebx, 0xf
call fcn.0043fea0
mov rax, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x38]
call fcn.0043fea0
lea rax, [0x0103932a]
mov ebx, 0xe
call fcn.0043fea0
mov rax, qword [rsp + 0x68]
call fcn.0043fd20
lea rax, [0x014150a0]
mov ebx, 1
nop
call fcn.0043fea0
mov rax, qword [rsp + 0x70]
call fcn.0043fd20
call fcn.0043f860
call fcn.0043f680
lea rax, [0x0103ba87]
mov ebx, 0x10
call fcn.0043dc80
movsxd rcx, eax
mov qword [rsp + 0x80], rcx
mov ebx, dword [rsi + 4]
mov rax, r9
nop dword [rax + rax]
call fcn.0045a0e0
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x40], rbx
mov rcx, qword [rsp + 0xc0]
movsxd rcx, dword [rcx]
mov qword [rsp + 0x78], rcx
call fcn.0043f620
lea rax, [0x0103fabb]
mov ebx, 0x13
call fcn.0043fea0
mov rax, qword [rsp + 0x80]
call fcn.0043fcc0
lea rax, [0x0102e6eb]
mov ebx, 5
call fcn.0043fea0
mov rax, qword [rsp + 0x78]
nop dword [rax + rax]
call fcn.0043fcc0
lea rax, [0x0105272b]
mov ebx, 0x1e
call fcn.0043fea0
mov rax, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x40]
call fcn.0043fea0
lea rax, [0x010360ca]
mov ebx, 0xb
call fcn.0043fea0
mov rax, qword [rsp + 0x50]
nop
call fcn.0043fd20
lea rax, [0x0102bf13]
mov ebx, 2
call fcn.0043fea0
call fcn.0043f680
lea rax, [0x0103ba97]
mov ebx, 0x10
call fcn.0043dc80
mov ebx, dword [rsi + 4]
mov rax, r9
call fcn.0045a0e0
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x48], rbx
mov rcx, qword [rsp + 0xe8]
mov rcx, qword [rcx + 0x38]
mov qword [rsp + 0x68], rcx
call fcn.0043f620
lea rax, [0x0103a626]
mov ebx, 0xf
call fcn.0043fea0
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x48]
call fcn.0043fea0
lea rax, [0x0103ba77]
mov ebx, 0x10
call fcn.0043fea0
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
sub rax, rcx
nop dword [rax + rax]
call fcn.0043fd20
lea rax, [0x014150a0]
mov ebx, 1
call fcn.0043fea0
mov rax, qword [rsp + 0x58]
nop dword [rax + rax]
call fcn.0043fd20
call fcn.0043f860
call fcn.0043f680
lea rax, [0x0103ba87]
mov ebx, 0x10
nop dword [rax + rax]
call fcn.0043dc80
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov byte [rsp + 0x18], cl
call fcn.004705e0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
movzx ecx, byte [rsp + 0x18]
jmp fcn.00456e40