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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x88]
nop dword [rax + rax]
cmp rax, qword [rcx + 0x10]
jbe 0x417920
sub rsp, 0x108
mov qword [rsp + 0x100], rbp
lea rbp, [rsp + 0x100]
mov rdx, qword [rsp + 0x118]
cmp rdx, 8
je 0x41785e
nop
mov rbx, qword [rsp + 0x110]
movabs rsi, 0x800000000000
lea rax, [rsi + rbx]
mov rsi, rax
shr rax, 0x2a
cmp rax, 0x40
jae 0x417913
lea rdi, [0x007f2f78]
mov r8, qword [rdi + rax*8]
test byte [r8], al
shr rsi, 0x16
mov r9, rsi
and rsi, 0xfffff
mov r8, qword [r8 + rsi*8]
nop dword [rax + rax]
test r8, r8
je 0x417848
mov r10, rbx
shr rbx, 5
and rbx, 0x1ffff
add rbx, r8
mov r11, r10
shr r10, 3
and r10, 3
add r8, 0x1ffff
mov rcx, r9
mov r12, qword [rsp + 0x128]
mov r13, qword [r12 + 0x20]
nop dword [rax]
cmp rdx, 0x10
je 0x4177b2
cmp rdx, 0x18
je 0x41768d
mov qword [rsp + 0x50], rsi
lea r14, [rdx + r11]
mov r15d, r9d
movabs rsi, 0x7fffffffffff
add rsi, r14
shr rsi, 0x16
cmp r15, rsi
je 0x416dbc
mov rbx, r11
xor r8d, r8d
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xc0], rsi
mov qword [rsp + 0xb8], rcx
movzx r14d, byte [r12 + 0x17]
nop word [rax + rax]
test r14b, 0x40
jne 0x417616
mov qword [rsp + 0xd0], r13
mov r8, qword [r12]
mov r9, qword [rsp + 0x120]
nop
cmp r9, r8
jbe 0x4175f3
mov r14, qword [r12 + 8]
shr r14, 3
cmp r14, 0x39
ja 0x41759a
xor edi, edi
mov qword [rsp + 0x70], rdi
xor edi, edi
mov qword [rsp + 0x60], rdi
lea rdi, [0x007f2f78]
jmp 0x416e91
cmp r11, 0x40
sbb rcx, rcx
mov qword [rsp + 0xb0], rcx
lea rax, [r11 + 8]
movzx edi, byte [r13]
mov rcx, r11
shl rdi, cl
mov rcx, qword [rsp + 0xb0]
and rdi, rcx
mov rcx, qword [rsp + 0x60]
or rcx, rdi
nop
inc r13
lea rdi, [0x007f2f78]
mov r11, qword [rsp + 0x110]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x60], rcx
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xb8]
mov r11, qword [rsp + 0x70]
cmp r11, r14
jb 0x416e33
mov r11, r8
shr r8, 3
lea r13, [r8 + r8]
cmp r13, 0x39
ja 0x41757f
mov r13, qword [rsp + 0x60]
mov r14, r8
jmp 0x416ef7
mov qword [rsp + 0x60], r13
sbb rcx, rcx
mov qword [rsp + 0xb0], rcx
mov rcx, r8
shl r13, cl
mov rax, qword [rsp + 0xb0]
and r13, rax
mov rax, qword [rsp + 0x60]
or r13, rax
lea r8, [rcx + rcx]
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xb8]
cmp r8, 0x40
jbe 0x416eba
nop dword [rax]
test r14b, r14b
je 0x41790e
movzx edi, r14b
mov r8, rsi
mov esi, 0x39
movzx esi, sil
mov eax, esi
mov rsi, rdx
xor edx, edx
div di
movzx edx, al
imul rdx, r14
cmp rdx, 0x40
sbb rdi, rdi
mov rax, rcx
mov rcx, rdx
mov r14d, 1
shl r14, cl
and rdi, r14
dec rdi
and r13, rdi
xor edx, edx
xor edi, edi
mov r14, rcx
test rdx, rdx
je 0x417567
mov rcx, r8
movzx r8d, byte [rdx]
nop
inc rdx
cmp r9, r11
mov qword [rsp + 0x88], rax
mov eax, 8
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x88]
jne 0x41752c
mov r9, qword [r12 + 8]
shr r9, 3
test r9, r9
je 0x417887
nop dword [rax]
test r10d, r10d
jne 0x4174c0
mov r10, r8
and r8, 0xf
or r8, 0xf0
nop word [rax + rax]
cmp r9, 4
ja 0x417347
mov edx, 4
cmp r9, rdx
jae 0x41733c
mov rdi, rdx
sub rdx, r9
add rdx, 0xfffffffffffffffc
neg rdx
cmp rdx, 0x40
sbb r9, r9
mov r10, rcx
mov rcx, rdx
mov r11d, 1
shl r11, cl
and r11, r9
lea rdx, [r11 - 1]
mov r9, rdx
shl rdx, 4
or rdx, r9
and r8, rdx
mov rcx, rsi
shr rsi, 3
cmp rdi, rsi
ja 0x417331
mov byte [rbx], r8b
nop
lea rdx, [rdi + 4]
inc rbx
jmp 0x417037
mov byte [rbx], 0
add rdx, 4
nop
inc rbx
cmp rdx, rsi
jbe 0x41702c
xor edi, edi
add rsi, 2
cmp rdx, rsi
jne 0x417329
movzx edx, byte [rbx]
and edx, 0xffffffcc
or edi, edx
mov byte [rbx], dil
cmp r15, r10
je 0x417225
mov rdx, qword [rsp + 0xc8]
lea rbx, [0x007f2f78]
mov rdx, qword [rbx + rdx*8]
test byte [rdx], al
mov rbx, qword [rsp + 0x50]
mov rdx, qword [rdx + rbx*8]
nop dword [rax]
test rdx, rdx
je 0x417314
mov rbx, qword [rsp + 0x110]
mov rdi, rbx
shr rbx, 5
and rbx, 0x1ffff
add rbx, rdx
mov r8, rdi
shr rdi, 3
and rdi, 3
add rdx, 0x1ffff
shr rcx, 3
mov rsi, r8
nop dword [rax + rax]
cmp edi, 2
jne 0x4171ce
movzx r9d, byte [rbx]
and r9d, 0x33
movzx r10d, byte [r8]
or r10d, r9d
mov byte [rbx], r10b
lea r9d, [rdi + 1]
nop
cmp r9d, 3
jae 0x4172ac
add edi, 2
add rcx, 0xfffffffffffffffe
inc r8
jmp 0x4171ce
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0xe0], rbx
mov qword [rsp], rbx
mov dword [rsp + 8], edi
mov dword [rsp + 0xc], eax
mov qword [rsp + 0x10], rdx
shr rcx, 2
shl rcx, 2
mov qword [rsp + 0x18], rcx
call fcn.00415ea0
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x58], rax
mov rcx, qword [rsp + 0x20]
mov qword [rsp + 0xf8], rcx
mov edx, dword [rsp + 0x28]
mov dword [rsp + 0x4c], edx
mov ebx, dword [rsp + 0x2c]
mov dword [rsp + 0x48], ebx
mov rsi, qword [rsp + 0x30]
mov qword [rsp + 0xf0], rsi
mov rdi, qword [rsp + 0xe0]
mov qword [rsp], rdi
mov rdi, qword [rsp + 0xd8]
mov qword [rsp + 8], rdi
shr rax, 2
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0x10], rax
call fcn.0046d6c0
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x58]
sub rcx, rax
nop
mov rax, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0xd8]
lea r8, [rdx + rax]
mov rsi, qword [rsp + 0x110]
mov rbx, qword [rsp + 0xf8]
mov edi, dword [rsp + 0x4c]
mov rdx, qword [rsp + 0xf0]
mov eax, dword [rsp + 0x48]
mov qword [rsp + 0xd8], r8
nop word [rax + rax]
nop
cmp rcx, 4
jae 0x4170f9
cmp rcx, 2
jne 0x417211
movzx ecx, byte [rbx]
and ecx, 0xffffffcc
movzx r9d, byte [r8]
or r9d, ecx
mov byte [rbx], r9b
nop
cmp edi, 3
jae 0x417262
lea ecx, [rdi + 1]
cmp ecx, 3
jae 0x417235
inc r8
mov rax, rsi
mov qword [rsp], rsi
sub r8, rax
mov qword [rsp + 8], r8
call fcn.0046d420
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
cmp rdx, rbx
jne 0x41720e
mov qword [rsp], rbx
mov dword [rsp + 8], ecx
mov dword [rsp + 0xc], eax
mov qword [rsp + 0x10], rdx
call fcn.00415ce0
mov rsi, qword [rsp + 0x110]
mov r8, qword [rsp + 0xd8]
jmp 0x41720e
cmp rdx, rbx
je 0x41726e
inc rbx
xor ecx, ecx
jmp 0x417209
mov qword [rsp], rbx
mov dword [rsp + 8], edi
mov dword [rsp + 0xc], eax
mov qword [rsp + 0x10], rdx
nop
call fcn.00415ce0
mov rbx, qword [rsp + 0x18]
mov ecx, dword [rsp + 0x20]
mov eax, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x110]
mov r8, qword [rsp + 0xd8]
jmp 0x417209
cmp rbx, rdx
je 0x4172bb
inc rbx
xor edi, edi
jmp 0x4170ed
mov qword [rsp + 0xe8], r8
mov qword [rsp + 0xa8], rcx
mov qword [rsp], rbx
mov dword [rsp + 8], r9d
mov dword [rsp + 0xc], eax
mov qword [rsp + 0x10], rdx
nop dword [rax]
call fcn.00415ce0
mov rbx, qword [rsp + 0x18]
mov edi, dword [rsp + 0x20]
mov eax, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0x110]
mov r8, qword [rsp + 0xe8]
jmp 0x4170ed
mov r8, qword [rsp + 0x110]
xor ebx, ebx
xor edi, edi
xor edx, edx
xor eax, eax
jmp 0x4170b4
cmp r15, r10
jmp 0x417059
mov rdx, rdi
mov rdi, r8
jmp 0x41703e
mov rdi, rdx
mov r10, rcx
jmp 0x41700f
mov byte [rbx], r8b
nop
shr r10, 4
mov r8, qword [rsp + 0x68]
add r8, 0xfffffffffffffffc
inc rbx
mov r11d, 4
mov qword [rsp + 0xa0], r13
add r8, 0xfffffffffffffffc
mov r12, qword [rsp + 0xd0]
jmp 0x41739c
mov byte [rbx + 1], al
nop
shr r8, 4
add rbx, 2
mov rax, qword [rsp + 0xb8]
mov r11, r10
mov r10, r8
mov r8, rcx
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0x80], r10
and r10, 0xf
or r10, 0xf0
lea rax, [r11 + 4]
cmp r9, rax
jbe 0x4174ac
mov byte [rbx], r10b
nop
mov rax, qword [rsp + 0x80]
shr rax, 4
cmp rdi, rdx
je 0x417430
cmp r8, 8
jae 0x417427
movzx r10d, byte [rdx]
mov rcx, r8
shl r10, cl
or rax, r10
nop
inc rdx
mov r8, rax
and rax, 0xf
or rax, 0xf0
lea r10, [r11 + 8]
nop dword [rax]
cmp r9, r10
ja 0x417377
inc rbx
mov rcx, qword [rsp + 0xc0]
mov rdx, r10
mov r8, rax
mov rax, qword [rsp + 0xb8]
jmp 0x416fcf
add r8, 0xfffffffffffffff8
mov rcx, r8
jmp 0x4173e8
test rdx, rdx
je 0x417480
cmp r8, 0x40
sbb r10, r10
movzx edx, byte [rdx]
mov rcx, r8
shl rdx, cl
and r10, rdx
or rax, r10
lea rdx, [rcx + r14]
cmp rdx, 8
jae 0x417471
movzx r8d, byte [r12]
mov rcx, rdx
shl r8, cl
or rax, r8
nop
lea r8, [r12 + 1]
mov rdx, r8
jmp 0x4173e8
lea rcx, [rcx + r14]
lea rcx, [rcx - 8]
mov r8, r12
jmp 0x417469
cmp r8, 8
jae 0x4174a7
mov r10, rcx
mov rcx, r8
shl r13, cl
or rax, r13
lea r8, [rcx + r14]
lea rcx, [r8 - 8]
mov r13, qword [rsp + 0xa0]
mov r8, rdx
jmp 0x417469
mov r10, rcx
jmp 0x417496
mov rdx, r10
mov r10, rax
mov rax, rdx
jmp 0x41740c
cmp r10d, 2
jne 0x41786e
mov r10, r8
and r8, 3
shl r8, 2
mov r11, r8
or r8, 0x40
or r11, 0xc0
cmp r9, 1
cmova r8, r11
movzx r11d, byte [rbx]
and r11d, 0x33
or r8d, r11d
mov byte [rbx], r8b
nop
inc rbx
nop dword [rax]
cmp r9, 2
ja 0x417513
mov edx, 6
xor r8d, r8d
jmp 0x416fcf
shr r10, 2
mov r12, qword [rsp + 0x68]
lea r8, [r12 - 2]
mov r11d, 2
jmp 0x417361
test r11, r11
je 0x417909
mov rax, r9
mov r9, rdx
xor edx, edx
div r11
mov rdx, r11
lea r11, [rax - 1]
imul r11, rdx
add r11, qword [r12 + 8]
shr r11, 3
mov rax, qword [rsp + 0xb8]
mov rdx, r9
mov r9, r11
jmp 0x416f90
cmp r9, r11
mov r8, r13
mov qword [rsp + 0x68], rcx
mov rcx, qword [rsp + 0xc0]
jmp 0x416f81
mov rax, rcx
mov rsi, rdx
mov r13, qword [rsp + 0x60]
mov rcx, r8
mov r8, qword [rsp + 0xc0]
jmp 0x416f49
mov qword [rsp + 0xb0], r8
add r14, 7
shr r14, 3
lea rcx, [r14 - 1]
nop
shr r8, 3
shl rcx, 3
sub r8, rcx
mov rcx, r13
lea r13, [r14 + r13]
lea r13, [r13 - 1]
mov rax, qword [rsp + 0xb8]
mov rsi, rdx
mov r11, qword [rsp + 0xb0]
mov rdx, rcx
xor ecx, ecx
mov rdi, r13
xor r13d, r13d
mov r14, r8
mov r8, qword [rsp + 0xc0]
jmp 0x416f50
mov rax, rcx
mov rsi, rdx
mov r11, r8
mov rdx, r13
xor ecx, ecx
xor edi, edi
xor r13d, r13d
xor r14d, r14d
mov r8, qword [rsp + 0xc0]
jmp 0x416f50
mov qword [rsp + 0x98], r15
mov rax, qword [r12 + 8]
mov rcx, qword [r12]
mov qword [rsp], rbx
mov dword [rsp + 8], r10d
mov dword [rsp + 0xc], r9d
mov qword [rsp + 0x10], r8
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rcx
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rdx
lea rax, [r13 + 4]
mov qword [rsp + 0x38], rax
nop
call fcn.00417940
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xc0]
cmp rax, rcx
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x118]
jmp 0x417059
movzx eax, byte [r13]
cmp qword [r12], 8
jne 0x41769e
mov eax, 7
and eax, 7
mov ecx, eax
shl eax, 4
or eax, ecx
mov ecx, eax
or eax, 0x10
and eax, 0x40
shr al, 1
or eax, ecx
mov ecx, eax
or eax, 0x10
cmp r10d, 1
ja 0x4176f0
nop
test r10d, r10d
jne 0x4176e2
movzx eax, byte [rbx]
and eax, 0xffffff88
or eax, ecx
or eax, 0x10
mov byte [rbx], al
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
movzx ecx, byte [rbx]
and ecx, 0x11
shl eax, 1
or eax, ecx
mov byte [rbx], al
jmp 0x4176d2
mov byte [rsp + 0x47], al
cmp r10d, 2
jne 0x417754
movzx ecx, byte [rbx]
and ecx, 0x33
mov edx, eax
and eax, 0x33
shl eax, 2
or eax, ecx
mov byte [rbx], al
lea eax, [r10 + 1]
cmp eax, 3
jae 0x417727
movzx eax, byte [rbx]
and eax, 0xffffffee
shr dl, 2
and edx, 0x11
or edx, eax
mov byte [rbx], dl
jmp 0x4176d2
cmp r8, rbx
je 0x417731
inc rbx
jmp 0x417715
mov qword [rsp], rbx
mov dword [rsp + 8], eax
mov dword [rsp + 0xc], r9d
mov qword [rsp + 0x10], r8
call fcn.00415ce0
mov rbx, qword [rsp + 0x18]
movzx edx, byte [rsp + 0x47]
jmp 0x417715
cmp r10d, 3
jne 0x4176d2
movzx ecx, byte [rbx]
and ecx, 0x77
mov edx, eax
and eax, 0x11
shl eax, 3
or ecx, eax
mov byte [rbx], cl
cmp r8, rbx
je 0x41778e
nop
lea rax, [rbx + 1]
movzx ecx, byte [rax]
and ecx, 0xffffffcc
shr dl, 1
and edx, 0x33
or edx, ecx
mov byte [rax], dl
jmp 0x4176d2
mov qword [rsp], rbx
mov dword [rsp + 8], r10d
mov dword [rsp + 0xc], r9d
mov qword [rsp + 0x10], r8
call fcn.00415ce0
mov rax, qword [rsp + 0x18]
movzx edx, byte [rsp + 0x47]
jmp 0x41777a
cmp qword [r12], 8
jne 0x4177e2
cmp r10d, 0x20
sbb eax, eax
movzx edx, byte [rbx]
mov ecx, r10d
mov esi, 0x33
shl esi, cl
and esi, eax
or edx, esi
mov byte [rbx], dl
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
mov rcx, qword [r12 + 8]
shr rcx, 3
cmp rcx, 0x20
sbb eax, eax
cmp r10d, 0x20
sbb edx, edx
sbb esi, esi
movzx edi, byte [r13]
and edi, 3
mov r8d, 0x10
shl r8d, cl
and eax, r8d
dec eax
and eax, 0xf0
or edi, eax
movzx eax, byte [rbx]
mov ecx, r10d
mov r8d, 0x33
shl r8d, cl
and r8d, edx
not r8d
and r8d, eax
shl edi, cl
and esi, edi
or esi, r8d
mov byte [rbx], sil
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
mov rcx, r9
mov r11, rbx
xor ebx, ebx
xor r10d, r10d
xor r8d, r8d
xor r9d, r9d
jmp 0x416d6f
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
lea rax, [0x00663bbd]
mov qword [rsp], rax
mov qword [rsp + 8], 0x21
call fcn.00439220
mov qword [rsp], r12
call fcn.0045e720
mov rax, qword [rsp + 8]
mov qword [rsp + 0xf8], rax
mov rcx, qword [rsp + 0x10]
mov qword [rsp + 0x90], rcx
call fcn.0043aa00
lea rax, [0x006600e8]
mov qword [rsp], rax
mov qword [rsp + 8], 0x17
call fcn.0043b480
mov rax, qword [rsp + 0xf8]
mov qword [rsp], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 8], rax
call fcn.0043b480
call fcn.0043ace0
call fcn.0043aaa0
lea rax, [0x00666edd]
mov qword [rsp], rax
mov qword [rsp + 8], 0x2d
call fcn.00439220
call fcn.00436e20
call fcn.00436e20
mov ecx, 0x40
call fcn.0046cde0
nop
nop
call fcn.0046abe0
jmp fcn.00416ca0