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

Disassembly:
lea r12, [rsp - 8]
cmp r12, qword [r14 + 0x10]
jbe 0x47d876
sub rsp, 0x88
mov qword [rsp + 0x80], rbp
lea rbp, [rsp + 0x80]
test rbx, rbx
je 0x47d5db
test rcx, rcx
jg 0x47d3f5
bsf rdx, rbx
mov r9, rcx
neg rcx
nop
cmp rdx, rcx
jl 0x47d3f8
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.0047d8c0
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 0x47d425
mov rdx, qword [rdi + 0x10]
sub rdx, rcx
inc rdx
nop dword [rax]
cmp r9, rdx
jne 0x47d442
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 0x47d461
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 0x47d5b5
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, [0x00861c00]
cmp rdi, r8
jne 0x47d511
mov rax, r10
mov rbx, r9
mov rcx, rsi
call fcn.0047ddc0
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.0047ddc0
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.0047ddc0
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 0x47d571
mov rax, r10
mov rbx, r9
mov rcx, rsi
call fcn.0047dea0
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.0047dea0
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.0047dea0
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 0x47d862
mov r9, qword [rsp + 0x48]
nop
cmp r9, 0x37
jle 0x47d58d
xor ecx, ecx
xor eax, eax
xor r8d, r8d
mov r10, qword [rsp + 0x38]
lea r11, [r10 + 0x19]
cmp r11, 0x18
jae 0x47d5f0
neg r9
mov r11, qword [rsp + 0x50]
test r11, r11
je 0x47d7a6
xor r12d, r12d
jmp 0x47d774
mov rcx, rbx
mov rdi, r11
mov esi, 1
xor r8d, r8d
mov rbx, r10
call fcn.0047d8c0
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 0x47d64b
test rbx, rbx
seta r11b
test r12b, r12b
jmp 0x47d651
mov r11d, 1
je 0x47d668
test rbx, rbx
jne 0x47d668
mov r12, qword [rsp + 0x78]
bt r12d, 0
setae r11b
jmp 0x47d66d
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 0x47d6c6
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 0x47d6b5
mov rcx, rsi
mov esi, 1
jmp 0x47d6f6
jne 0x47d6bf
mov rcx, rsi
and esi, 1
jmp 0x47d6f6
mov rcx, rsi
xor esi, esi
jmp 0x47d6f6
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 0x47d70f
nop dword [rax + rax]
test r13, r15
jne 0x47d70f
bt ebx, 0
jb 0x47d70f
test al, al
jmp 0x47d714
inc rdx
test al, al
je 0x47d71f
test r10, r10
sete r9b
jmp 0x47d722
xor r9d, r9d
mov rax, qword [rsp + 0x90]
mov rbx, rdx
mov r8d, esi
mov esi, r9d
call fcn.0047d8c0
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 0x47d7a6
mov r13d, eax
movabs rax, 0xcccccccccccccccd
mov r15, rdx
mul r11
shr rdx, 2
lea r10, [rdx + rdx*4]
cmp r11, r10
je 0x47d763
mov eax, r13d
mov rdx, r15
mov r10, qword [rsp + 0x38]
jmp 0x47d7ac
mov r8d, 1
mov r11, qword [rsp + 0x70]
test r11, r11
je 0x47d7fc
xor r12d, r12d
jmp 0x47d7cc
inc r12
mov eax, r13d
mov r10, qword [rsp + 0x38]
mov r11, rdx
mov rdx, r15
cmp r12, r9
jge 0x47d7fc
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 0x47d7bb
mov rdx, r15
mov r10, rax
jmp 0x47d802
mov r13d, 1
mov r11, qword [rsp + 0x40]
test r11, r11
je 0x47d810
xor eax, eax
jmp 0x47d82e
mov eax, 1
mov ecx, eax
mov eax, r13d
jmp 0x47d5f0
inc r12
mov r10, rax
mov rax, r12
mov r11, rdx
mov rdx, r15
cmp rax, r9
jge 0x47d810
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 0x47d81f
mov rdx, r15
mov r10, rax
mov eax, ecx
nop
jmp 0x47d815
lea rax, [0x006576e0]
lea rbx, [0x00718d20]
call fcn.00436420
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.004632e0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.0047d380