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

Disassembly:
lea r12, [rsp - 8]
cmp r12, qword [r14 + 0x10]
jbe 0x478cd6
sub rsp, 0x88
mov qword [rsp + 0x80], rbp
lea rbp, [rsp + 0x80]
test rbx, rbx
je 0x478a3b
test rcx, rcx
jg 0x478855
bsf rdx, rbx
mov r9, rcx
neg rcx
nop
cmp rdx, rcx
jl 0x478858
cmp rcx, 0x40
sbb rdi, rdi
shr rbx, cl
and rdi, rbx
mov rbx, rdi
mov rcx, rbx
mov esi, 1
xor r8d, r8d
call fcn.00478d20
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
mov r9, rcx
mov rcx, qword [rdi]
cmp rcx, 0x40
sbb rdx, rdx
mov r10d, 1
shl r10, cl
and r10, rdx
cmp rbx, r10
jne 0x478885
mov rdx, qword [rdi + 0x10]
sub rdx, rcx
inc rdx
nop dword [rax]
cmp r9, rdx
jne 0x4788a2
mov rdx, rbx
shl rbx, 1
lea r10, [rdx + rdx]
lea r10, [r10 - 1]
lea r11, [rdx + rdx]
lea r11, [r11 + 1]
dec r9
nop
jmp 0x4788c1
mov r10, rbx
shl r10, 2
lea rdx, [r10 - 1]
lea r11, [r10 + 2]
add r9, 0xfffffffffffffffe
mov rcx, rdx
mov rdx, rbx
mov rbx, r10
mov r10, rcx
test r9, r9
je 0x478a15
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x90], rax
imul rcx, r9, 0xfffffffffffecbbf
sar rcx, 0x12
mov qword [rsp + 0x38], rcx
lea rsi, [rcx + 1]
mov qword [rsp + 0x48], rsi
lea r8, [0x00971da0]
cmp rdi, r8
jne 0x478971
mov rax, r10
mov rbx, r9
mov rcx, rsi
call fcn.00479220
mov dword [rsp + 0x30], eax
mov byte [rsp + 0x2e], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x48]
call fcn.00479220
mov dword [rsp + 0x34], eax
mov byte [rsp + 0x2f], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
call fcn.00479220
mov edx, dword [rsp + 0x30]
mov edx, edx
mov esi, dword [rsp + 0x34]
mov esi, esi
mov edi, eax
movzx eax, byte [rsp + 0x2f]
movzx r8d, byte [rsp + 0x2e]
jmp 0x4789d1
mov rax, r10
mov rbx, r9
mov rcx, rsi
call fcn.00479300
mov qword [rsp + 0x60], rax
mov byte [rsp + 0x2e], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x48]
call fcn.00479300
mov qword [rsp + 0x68], rax
mov byte [rsp + 0x2f], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
call fcn.00479300
mov rdx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
mov rdi, rax
movzx eax, byte [rsp + 0x2f]
movzx r8d, byte [rsp + 0x2e]
test rbx, rbx
jge 0x478cc2
mov r9, qword [rsp + 0x48]
nop
cmp r9, 0x37
jle 0x4789ed
xor ecx, ecx
xor eax, eax
xor r8d, r8d
mov r10, qword [rsp + 0x38]
lea r11, [r10 + 0x19]
cmp r11, 0x18
jae 0x478a50
neg r9
mov r11, qword [rsp + 0x50]
test r11, r11
je 0x478c06
xor r12d, r12d
jmp 0x478bd4
mov rcx, rbx
mov rdi, r11
mov esi, 1
xor r8d, r8d
mov rbx, r10
call fcn.00478d20
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
movups xmmword [rax + 0x18], xmm15
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
mov qword [rsp + 0x68], rsi
mov r9, rbx
neg rbx
cmp rbx, 0x40
sbb r11, r11
mov r12d, ecx
mov rcx, rbx
mov r13d, 1
shl r13, cl
and r13, r11
dec r13
mov r15, rdx
shr rdx, cl
and rdx, r11
shr rsi, cl
and rsi, r11
mov r10, qword [rsp + 0x68]
and r10, r13
mov rbx, rdi
shr rdi, cl
and rdi, r11
and rbx, r13
test r12b, r12b
je 0x478aab
test rbx, rbx
seta r11b
test r12b, r12b
jmp 0x478ab1
mov r11d, 1
je 0x478ac8
test rbx, rbx
jne 0x478ac8
mov r12, qword [rsp + 0x78]
bt r12d, 0
setae r11b
jmp 0x478acd
mov r12, qword [rsp + 0x78]
mov rcx, r12
lea r12, [rdi - 1]
movzx r11d, r11b
test r11, r11
cmovne r12, rdi
nop
test al, al
je 0x478b26
inc r9
neg r9
cmp r9, 0x40
sbb r11, r11
mov rbx, rcx
mov rcx, r9
mov rdi, r12
mov r12d, 1
shl r12, cl
and r12, r11
cmp r12, r10
jae 0x478b15
mov rcx, rsi
mov esi, 1
jmp 0x478b56
jne 0x478b1f
mov rcx, rsi
and esi, 1
jmp 0x478b56
mov rcx, rsi
xor esi, esi
jmp 0x478b56
inc r9
neg r9
cmp r9, 0x40
sbb r11, r11
mov rbx, rcx
mov rcx, r9
mov rdi, r10
shr r10, cl
and r10, r11
cmp r10, 1
sete r9b
mov rcx, rsi
mov r10, rdi
mov esi, r9d
mov rdi, r12
test r8b, r8b
je 0x478b6f
nop dword [rax + rax]
test r13, r15
jne 0x478b6f
bt ebx, 0
jb 0x478b6f
test al, al
jmp 0x478b74
inc rdx
test al, al
je 0x478b7f
test r10, r10
sete r9b
jmp 0x478b82
xor r9d, r9d
mov rax, qword [rsp + 0x90]
mov rbx, rdx
mov r8d, esi
mov esi, r9d
call fcn.00478d20
mov rdx, qword [rsp + 0x90]
mov r9, qword [rdx + 0x20]
mov r10, qword [rsp + 0x38]
sub r9, r10
dec r9
mov qword [rdx + 0x20], r9
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
inc r12
mov eax, r13d
mov r10, qword [rsp + 0x38]
mov r11, rdx
mov rdx, r15
cmp r12, r9
jge 0x478c06
mov r13d, eax
movabs rax, 0xcccccccccccccccd
mov r15, rdx
mul r11
shr rdx, 2
lea r10, [rdx + rdx*4]
cmp r11, r10
je 0x478bc3
mov eax, r13d
mov rdx, r15
mov r10, qword [rsp + 0x38]
jmp 0x478c0c
mov r8d, 1
mov r11, qword [rsp + 0x70]
test r11, r11
je 0x478c5c
xor r12d, r12d
jmp 0x478c2c
inc r12
mov eax, r13d
mov r10, qword [rsp + 0x38]
mov r11, rdx
mov rdx, r15
cmp r12, r9
jge 0x478c5c
mov r13d, eax
movabs rax, 0xcccccccccccccccd
mov r15, rdx
mul r11
shr rdx, 2
mov rax, r10
lea r10, [rdx + rdx*4]
cmp r11, r10
je 0x478c1b
mov rdx, r15
mov r10, rax
jmp 0x478c62
mov r13d, 1
mov r11, qword [rsp + 0x40]
test r11, r11
je 0x478c70
xor eax, eax
jmp 0x478c8e
mov eax, 1
mov ecx, eax
mov eax, r13d
jmp 0x478a50
inc r12
mov r10, rax
mov rax, r12
mov r11, rdx
mov rdx, r15
cmp rax, r9
jge 0x478c70
mov r12, rax
movabs rax, 0xcccccccccccccccd
mov r15, rdx
mul r11
shr rdx, 2
mov rax, r10
lea r10, [rdx + rdx*4]
cmp r11, r10
je 0x478c7f
mov rdx, r15
mov r10, rax
mov eax, ecx
nop
jmp 0x478c75
lea rax, [0x006bb4c0]
lea rbx, [0x007f1560]
call fcn.00436580
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.00463860
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.004787e0