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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x1a0]
cmp rax, qword [rcx + 0x10]
jbe 0x47f621
sub rsp, 0x220
mov qword [rsp + 0x218], rbp
lea rbp, [rsp + 0x218]
mov rax, qword [rsp + 0x228]
movzx ecx, byte [rax + 0x17]
and ecx, 0x1f
cmp rcx, 0x13
jne 0x47f603
mov rcx, qword [rsp + 0x230]
test rcx, rcx
je 0x47eb70
movzx edx, byte [rcx + 0x17]
and edx, 0x1f
cmp rdx, 0x14
je 0x47f573
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], rcx
lea rdx, [0x008351a0]
mov qword [rsp], rdx
lea rbx, [0x00671a20]
mov qword [rsp + 8], rbx
lea rsi, [rsp + 0x120]
mov qword [rsp + 0x10], rsi
call fcn.0045b4f0
movzx eax, byte [rsp + 0x28]
mov rcx, qword [rsp + 0x18]
mov rdx, qword [rsp + 0x20]
test al, al
jne 0x47f43a
lea rax, [0x006713e0]
mov qword [rsp], rax
call fcn.00410b80
mov rax, qword [rsp + 8]
mov qword [rsp + 0xf0], rax
mov rcx, qword [rsp + 0x230]
test rcx, rcx
je 0x47f430
movzx edx, byte [rcx + 0x17]
test dl, 0x20
jne 0x47f41f
mov edx, dword [rax]
test edx, 7
jne 0x47ec2e
mov rdx, qword [rax + 0x18]
mov rbx, qword [rax + 8]
mov rsi, qword [rax + 0x10]
lea rdi, [rax + 8]
lea r8, [rsi + 1]
cmp r8, rdx
jg 0x47f3a0
lea rdx, [rsi + 1]
mov qword [rax + 0x10], rdx
mov byte [rbx + rsi], 0
mov rdx, qword [rax + 0x10]
mov rbx, qword [rax + 8]
mov esi, dword [rax]
mov edi, esi
shr esi, 3
cmp rsi, rdx
jae 0x47f550
movzx edx, byte [rbx + rsi]
and edi, 7
mov r8, rcx
mov ecx, edi
mov r9d, 1
shl r9d, cl
or r9d, edx
mov byte [rbx + rsi], r9b
inc dword [rax]
mov ecx, 8
mov rdx, qword [rsp + 0x228]
movzx ebx, byte [rdx + 0x14]
test bl, 1
je 0x47f396
mov ebx, 0x48
movzx esi, word [rdx + 0x30]
test si, si
jne 0x47f389
xor ebx, ebx
xor esi, esi
mov qword [rsp + 0x118], rbx
mov qword [rsp + 0x70], rsi
xor edi, edi
jmp 0x47ed35
mov qword [rsp + 0x98], rdi
mov rdx, qword [rbx + rdi*8]
mov qword [rsp + 0xf8], rdx
movzx esi, byte [rdx + 0x15]
mov qword [rsp], rax
mov r8, rcx
neg rcx
dec esi
movzx esi, sil
and rsi, rcx
lea rcx, [r8 + rsi]
mov qword [rsp + 0x80], rcx
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rdx
call fcn.0047f630
mov rax, qword [rsp + 0x98]
lea rdi, [rax + 1]
mov rax, qword [rsp + 0xf8]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x80]
add rcx, rax
mov rax, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0x228]
mov rbx, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x230]
cmp rdi, rsi
jl 0x47eca8
mov ebx, dword [rax]
mov rsi, rcx
neg rcx
and rcx, 7
add rcx, rsi
movzx edi, byte [rdx + 0x14]
test dil, 1
je 0x47f37f
mov edi, 0x48
movzx r9d, word [rdx + 0x32]
mov r10d, r9d
and r9d, 0x7fff
test r10w, 0x7fff
jne 0x47f337
xor edi, edi
xor r9d, r9d
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x118], r9
mov dword [rsp + 0x6c], ebx
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x90], rsi
mov r10, rcx
xor r11d, r11d
jmp 0x47ee4c
mov qword [rsp + 0x98], r11
mov rdx, qword [r9 + r11*8]
mov qword [rsp + 0xe8], rdx
movzx ebx, byte [rdx + 0x15]
mov qword [rsp], rax
mov rsi, rcx
neg rcx
dec ebx
movzx ebx, bl
and rbx, rcx
lea rcx, [rsi + rbx]
mov qword [rsp + 0x88], rcx
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rdx
call fcn.0047f630
mov rax, qword [rsp + 0x98]
lea r11, [rax + 1]
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x88]
add rcx, rax
mov rax, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0x228]
mov ebx, dword [rsp + 0x6c]
mov rsi, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x78]
mov r8, qword [rsp + 0x230]
mov r9, qword [rsp + 0x118]
mov r10, qword [rsp + 0x80]
cmp r11, rdi
jl 0x47edac
mov qword [rsp + 0x88], rcx
lea rax, [0x00699760]
mov qword [rsp], rax
call fcn.00410b80
mov rax, qword [rsp + 8]
mov byte [rax + 0x15], 8
mov rcx, qword [rsp + 0x88]
mov rdx, rcx
neg rcx
and rcx, 7
add rcx, rdx
mov qword [rax], rcx
mov rcx, qword [rsp + 0xf0]
mov edx, dword [rcx]
shl rdx, 3
mov qword [rax + 8], rdx
mov edx, dword [rcx]
test edx, edx
jbe 0x47f31d
mov rdx, qword [rcx + 0x10]
mov rbx, qword [rcx + 8]
test rdx, rdx
jbe 0x47f542
mov edx, dword [0x00850df0]
lea rdi, [rax + 0x20]
test edx, edx
jne 0x47f2fc
mov qword [rax + 0x20], rbx
mov rdx, qword [rsp + 0x230]
test rdx, rdx
mov qword [rsp + 0xe0], rax
mov ebx, dword [rsp + 0x6c]
mov dword [rcx], ebx
je 0x47f28d
mov qword [rsp], rdx
call fcn.00477ad0
mov rax, qword [rsp + 8]
mov qword [rsp + 0x118], rax
mov rcx, qword [rsp + 0x10]
mov qword [rsp + 0x98], rcx
mov rdx, qword [rsp + 0x228]
mov qword [rsp], rdx
call fcn.00477ad0
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 8]
lea rdx, [rsp + 0xa0]
mov qword [rsp], rdx
lea rdx, [0x006acb4f]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], 0xb
mov rdx, qword [rsp + 0x118]
mov qword [rsp + 0x18], rdx
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x20], rdx
lea rdx, [0x006aafd8]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], 2
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x40], rax
lea rax, [0x006aaf96]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], 1
call fcn.00441dc0
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x10], xmm0
mov byte [rsp + 0x20], 0
call fcn.00477480
mov rax, qword [rsp + 0x28]
mov qword [rsp], rax
call fcn.004778a0
mov eax, dword [rsp + 8]
mov rcx, qword [rsp + 0xe0]
mov dword [rcx + 0x28], eax
lea rax, [0x00684200]
mov qword [rsp], rax
call fcn.00410b80
mov rax, qword [rsp + 8]
mov qword [rsp + 0x110], rax
lea rcx, [0x0066af20]
mov qword [rsp], rcx
call fcn.00410b80
mov rax, qword [rsp + 8]
lea rcx, [0x00487150]
mov qword [rax], rcx
mov ecx, dword [0x00850df0]
lea rdi, [rax + 8]
mov rdx, qword [rsp + 0x110]
lea rbx, [rdx + 0x10]
test ecx, ecx
jne 0x47f267
mov rcx, qword [rsp + 0xe0]
mov qword [rax + 8], rcx
mov qword [rdx + 0x10], rax
mov rax, qword [rsp + 0x228]
mov qword [rsp + 0x130], rax
mov rax, qword [rsp + 0x230]
mov qword [rsp + 0x138], rax
mov rax, qword [0x006f98a0]
mov qword [rsp + 0x1c8], rax
lea rdi, [rsp + 0x1d0]
lea rsi, [0x006f98a8]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00455954
mov rbp, qword [rbp]
mov qword [rsp + 0x1c8], rcx
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x1d0], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x1d8], rax
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x1e0], rax
mov qword [rsp + 0x1e8], rdx
lea rax, [0x00671a20]
mov qword [rsp], rax
lea rax, [rsp + 0x130]
mov qword [rsp + 8], rax
call fcn.0040deb0
mov rax, qword [rsp + 0x18]
mov qword [rsp + 0x118], rax
mov rcx, qword [rsp + 0x10]
mov qword [rsp + 0x108], rcx
lea rdx, [0x006886c0]
mov qword [rsp], rdx
lea rbx, [rsp + 0x1c8]
mov qword [rsp + 8], rbx
call fcn.0040deb0
mov rax, qword [rsp + 0x18]
mov rcx, qword [rsp + 0x10]
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rax
lea rax, [0x008351a0]
mov qword [rsp], rax
mov rax, qword [rsp + 0x108]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x10], rax
call fcn.0045bea0
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
mov qword [rsp + 0x1a0], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x1a8], xmm0
movups xmmword [rsp + 0x1b8], xmm0
lea rdx, [0x006886c0]
cmp rcx, rdx
jne 0x47f526
mov rcx, qword [rax]
mov qword [rsp + 0x1a0], rcx
lea rsi, [rax + 8]
lea rdi, [rsp + 0x1a8]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00455954
mov rbp, qword [rbp]
mov rax, qword [rsp + 0x1a0]
mov qword [rsp + 0x178], rax
lea rdi, [rsp + 0x180]
lea rsi, [rsp + 0x1a8]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00455954
mov rbp, qword [rbp]
mov rax, qword [rsp + 0x178]
mov rcx, qword [rsp + 0x180]
mov rdx, qword [rsp + 0x188]
mov rbx, qword [rsp + 0x190]
mov r8, qword [rsp + 0x198]
mov qword [rsp + 0x238], rax
mov qword [rsp + 0x240], rcx
mov qword [rsp + 0x248], rdx
mov qword [rsp + 0x250], rbx
mov qword [rsp + 0x258], r8
mov rbp, qword [rsp + 0x218]
add rsp, 0x220
ret
mov rcx, rax
mov rax, qword [rsp + 0xe0]
call fcn.004553b0
mov rdi, rbx
mov rsi, rax
mov rax, rcx
call fcn.004553b0
mov rcx, rsi
jmp 0x47f04e
mov rax, qword [rsp + 0x228]
mov qword [rsp], rax
call fcn.00477ad0
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 8]
lea rdx, [rsp + 0xc0]
mov qword [rsp], rdx
lea rdx, [0x006ac341]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], 9
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rax
lea rax, [0x006aaf96]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], 1
call fcn.00441cc0
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
jmp 0x47efac
mov rdx, rax
mov rax, rbx
call fcn.004553b0
mov rbx, qword [rsp + 0x230]
test rbx, rbx
mov rax, rdx
mov rdx, rbx
jmp 0x47eedc
movzx ebx, byte [rax + 0x17]
or ebx, 0xffffff80
mov byte [rax + 0x17], bl
mov rdx, qword [rsp + 0x230]
test rdx, rdx
jmp 0x47eedc
add rdi, rdx
test byte [rdi], al
movzx r10d, word [rdx + 0x30]
movzx r11d, r10w
add r9d, r10d
movzx r9d, r9w
cmp r11, r9
ja 0x47f549
sub r9, r11
lea r10, [r11 - 0x100000]
neg r10
neg r10
shl r11, 3
sar r10, 0x3f
and r11, r10
lea r10, [rdi + r11]
mov rdi, r9
mov r9, r10
jmp 0x47ed80
mov edi, 0x38
jmp 0x47ed60
add rbx, rdx
test byte [rbx], al
movzx esi, si
jmp 0x47ec94
mov ebx, 0x38
jmp 0x47ec83
mov qword [rsp + 0x100], rdi
lea rax, [0x00649b20]
mov qword [rsp], rax
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], r8
call fcn.0043e400
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0xf0]
mov qword [rbx + 0x18], rdx
mov edx, dword [0x00850df0]
test edx, edx
jne 0x47f410
mov qword [rbx + 8], rax
mov rsi, rcx
mov rbx, rax
mov rax, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0x230]
jmp 0x47ec22
mov rdi, qword [rsp + 0x100]
call fcn.004553b0
jmp 0x47f3f5
test dl, 0x80
je 0x47ebfb
mov r8, rcx
jmp 0x47ec64
mov r8, rcx
xor ecx, ecx
jmp 0x47ec69
mov qword [rsp + 0x1f0], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x1f8], xmm0
movups xmmword [rsp + 0x208], xmm0
lea rax, [0x006886c0]
cmp rcx, rax
jne 0x47f557
mov rax, qword [rdx]
mov qword [rsp + 0x1f0], rax
lea rsi, [rdx + 8]
lea rdi, [rsp + 0x1f8]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00455954
mov rbp, qword [rbp]
mov rax, qword [rsp + 0x1f0]
mov qword [rsp + 0x150], rax
lea rdi, [rsp + 0x158]
lea rsi, [rsp + 0x1f8]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00455954
mov rbp, qword [rbp]
mov rax, qword [rsp + 0x150]
mov rcx, qword [rsp + 0x158]
mov rdx, qword [rsp + 0x160]
mov rbx, qword [rsp + 0x168]
mov r8, qword [rsp + 0x170]
mov qword [rsp + 0x238], rax
mov qword [rsp + 0x240], rcx
mov qword [rsp + 0x248], rdx
mov qword [rsp + 0x250], rbx
mov qword [rsp + 0x258], r8
mov rbp, qword [rsp + 0x218]
add rsp, 0x220
ret
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
lea rax, [0x006576c0]
mov qword [rsp + 0x10], rax
call fcn.0040dc90
ud2
call fcn.00429b50
ud2
call fcn.00429bc0
ud2
call fcn.00429b50
ud2
mov qword [rsp], rcx
mov qword [rsp + 8], rax
lea rax, [0x006576c0]
mov qword [rsp + 0x10], rax
call fcn.0040dc90
ud2
mov qword [rsp], rcx
call fcn.00477ad0
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 8]
mov qword [rsp], 0
lea rdx, [0x006b7c80]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], 0x2c
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rax
call fcn.00441c40
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rcx
lea rax, [0x00649960]
mov qword [rsp], rax
lea rax, [rsp + 0x140]
mov qword [rsp + 8], rax
call fcn.0040e0f0
mov rax, qword [rsp + 0x18]
mov rcx, qword [rsp + 0x10]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
call fcn.0042aba0
ud2
lea rax, [0x00649960]
mov qword [rsp], rax
lea rax, [0x006f6bc0]
mov qword [rsp + 8], rax
call fcn.0042aba0
ud2
call fcn.00452950
jmp fcn.0047eb00