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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x41250d
sub rsp, 0x50
mov qword [rsp + 0x48], rbp
lea rbp, [rsp + 0x48]
mov rdx, qword [rsp + 0x60]
cmp rdx, 8
je 0x412503
mov rbx, qword [0x0089e170]
mov rcx, qword [rsp + 0x58]
sub rcx, rbx
mov rbx, qword [0x0089e160]
mov rsi, rcx
shr rcx, 5
sub rbx, rcx
dec rbx
shr rsi, 3
and rsi, 3
mov rdi, qword [rsp + 0x70]
mov r8, qword [rdi + 0x20]
cmp rdx, 0x10
je 0x412499
movzx r9d, byte [rdi + 0x17]
test r9b, 0x40
jne 0x412459
mov rcx, qword [rdi]
mov rax, qword [rsp + 0x68]
cmp rcx, rax
jae 0x412432
mov r9, qword [rdi + 8]
shr r9, 3
cmp r9, 0x39
ja 0x4123f1
mov r10, r8
xor r11d, r11d
xor r12d, r12d
cmp r11, r9
jae 0x411fa1
lea r13, [r11 + 8]
movzx r14d, byte [r8]
mov r15, rcx
mov rcx, r11
shl r14, cl
cmp rcx, 0x40
mov rcx, r15
sbb r15, r15
and r14, r15
or r12, r14
inc r8
mov r11, r13
cmp r11, r9
jb 0x411f75
mov r8, rcx
shr rcx, 3
lea r9, [rcx + rcx]
cmp r9, 0x39
ja 0x4123d9
mov r9, rcx
cmp rcx, 0x40
ja 0x411fdb
mov r11, r12
shl r12, cl
cmp rcx, 0x40
sbb r13, r13
and r12, r13
or r12, r11
add rcx, rcx
cmp rcx, 0x40
jbe 0x411fbf
mov r11, 0xffffffffffffffff
test r11, r9
je 0x4123d2
mov rcx, rax
mov rax, 0x39
mov r13, rdx
xor edx, edx
div r9
imul rax, r9
mov rdx, rcx
mov rcx, rax
mov r9, 1
shl r9, cl
cmp rax, 0x40
sbb r14, r14
and r14, r9
lea r9, [r14 - 1]
and r9, r12
xor ecx, ecx
mov r12, rax
xor r14d, r14d
test rcx, rcx
je 0x4123c7
movzx r15d, byte [rcx]
lea r11, [rcx + 1]
mov rax, 8
cmp rdx, r8
jne 0x412392
mov rdx, qword [rdi + 8]
shr rdx, 3
test rdx, rdx
je 0x412315
cmp rdx, 2
jae 0x41230d
mov rcx, 2
test esi, esi
jne 0x41229a
mov rdx, r15
and r15, 0xf
or r15, 0xd0
cmp rcx, 4
ja 0x412129
mov rax, 4
cmp rax, rcx
jbe 0x412121
mov rdx, rax
sub rax, rcx
lea rcx, [rax - 4]
neg rcx
mov rax, 1
shl rax, cl
cmp rcx, 0x40
sbb rsi, rsi
and rsi, rax
lea rax, [rsi - 1]
mov rsi, rax
shl rax, 4
or rsi, rax
and rsi, r15
shr r13, 3
cmp rdx, r13
ja 0x412116
mov byte [rbx], sil
lea rax, [rbx - 1]
lea rcx, [rdx + 4]
cmp rcx, r13
ja 0x4120f7
mov byte [rax], 0
add rcx, 4
dec rax
cmp rcx, r13
jbe 0x4120e8
xor edx, edx
lea rbx, [r13 + 2]
cmp rcx, rbx
jne 0x41210c
movzx ecx, byte [rax]
and ecx, 0xffffffcc
or ecx, edx
mov byte [rax], cl
mov rbp, qword [rsp + 0x48]
add rsp, 0x50
ret
mov rcx, rdx
mov rax, rbx
mov rdx, rsi
jmp 0x4120f9
mov rdx, rax
mov rsi, r15
jmp 0x4120cf
mov byte [rbx], r15b
dec rbx
shr rdx, 4
add rax, 0xfffffffffffffffc
mov rsi, 4
add rax, 0xfffffffffffffffc
mov rdi, rdx
and rdx, 0xf
or rdx, 0xf0
lea r8, [rsi + 4]
cmp r8, rcx
jae 0x412289
mov byte [rbx], dl
shr rdi, 4
cmp r14, r11
je 0x4121ee
cmp rax, 8
jae 0x4121df
movzx edx, byte [r11]
mov r8, rcx
mov rcx, rax
shl rdx, cl
cmp rax, 0x40
sbb r15, r15
and r15, rdx
or r15, rdi
lea rdx, [r11 + 1]
lea rdi, [rbx - 1]
mov r11, r15
and r15, 0xf
or r15, 0xf0
add rsi, 8
cmp rsi, r8
jae 0x4121d1
test byte [rdi], al
mov rdi, 0xffffffffffffffff
mov byte [rdi + rbx], r15b
add rbx, 0xfffffffffffffffe
shr r11, 4
mov rcx, r8
mov r15, rdx
mov rdx, r11
mov r11, r15
jmp 0x412142
mov rcx, r8
mov rax, rsi
mov rbx, rdi
jmp 0x412094
add rax, 0xfffffffffffffff8
mov r8, rcx
mov r15, rdi
mov rdx, r11
jmp 0x412190
test r11, r11
je 0x41224a
movzx edx, byte [r11]
mov r8, rcx
mov rcx, rax
shl rdx, cl
cmp rax, 0x40
sbb r11, r11
and r11, rdx
or r11, rdi
lea rdx, [r12 + rax]
cmp rdx, 8
jae 0x412240
movzx eax, byte [r10]
mov rcx, rdx
shl rax, cl
cmp rcx, 0x40
sbb rdi, rdi
and rdi, rax
or r11, rdi
lea rax, [r10 + 1]
mov r15, r11
mov rdx, rax
mov rax, rcx
jmp 0x412190
lea rcx, [r12 + rax - 8]
mov rax, r10
jmp 0x412232
cmp rax, 8
jae 0x41227e
mov rdx, rcx
mov rcx, rax
mov r8, r9
shl r9, cl
cmp rax, 0x40
sbb r15, r15
and r15, r9
or r15, rdi
add rax, r12
lea rcx, [rax - 8]
mov r9, r8
mov rax, r11
mov r8, rdx
mov r11, r15
jmp 0x412232
mov rdx, rcx
mov r8, r9
mov r15, rdi
jmp 0x41226c
mov rsi, r8
mov rdi, rbx
mov r15, rdx
mov r8, rcx
jmp 0x4121d1
cmp esi, 2
jne 0x4122f2
movzx edx, byte [rbx]
and edx, 0xffffffb3
mov byte [rbx], dl
mov rsi, r15
and r15, 3
shl r15, 2
or r15, 0x40
or r15d, edx
mov byte [rbx], r15b
lea rdx, [rbx - 1]
cmp rcx, 2
ja 0x4122d8
mov rax, 6
mov rbx, rdx
xor r15d, r15d
jmp 0x412094
shr rsi, 2
add rax, 0xfffffffffffffffe
mov rbx, rdx
mov rdx, rsi
mov rsi, 2
jmp 0x41213e
lea rax, [0x006d9015]
mov qword [rsp], rax
mov qword [rsp + 8], 0x21
call fcn.0042aea0
ud2
mov rcx, rdx
jmp 0x41206d
mov qword [rsp], rdi
call fcn.0044c4c0
mov rax, qword [rsp + 0x10]
mov qword [rsp + 0x38], rax
mov rcx, qword [rsp + 8]
mov qword [rsp + 0x40], rcx
call fcn.0042b850
lea rax, [0x006d514e]
mov qword [rsp], rax
mov qword [rsp + 8], 0x16
call fcn.0042c220
call fcn.0042bad0
mov rax, qword [rsp + 0x40]
mov qword [rsp], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 8], rax
call fcn.0042c220
call fcn.0042bb30
call fcn.0042b8f0
lea rax, [0x006dbf5c]
mov qword [rsp], rax
mov qword [rsp + 8], 0x2d
call fcn.0042aea0
ud2
test r8, r8
je 0x4123c0
mov rcx, rax
mov rax, rdx
xor edx, edx
div r8
mov rdx, r8
lea r8, [rax - 1]
imul rdx, r8
mov r8, qword [rdi + 8]
add rdx, r8
shr rdx, 3
mov rax, rcx
jmp 0x412053
call fcn.004294c0
ud2
mov r15, r9
mov r11, rcx
jmp 0x412042
call fcn.004294c0
ud2
mov r11, 0xffffffffffffffff
mov r13, rdx
mov r9, r12
mov rdx, rax
mov rax, rcx
jmp 0x412022
lea r15, [r9 + 7]
shr r15, 3
mov r9, r15
dec r15
lea r14, [r8 + r9 - 1]
shl r15, 3
mov r12, rcx
shr r12, 3
sub r12, r15
mov r10, r8
mov r11, 0xffffffffffffffff
mov r13, rdx
xor r9d, r9d
mov rdx, rax
mov r8, rcx
mov rcx, r10
xor eax, eax
jmp 0x41202a
mov r10, r8
mov r11, 0xffffffffffffffff
mov r13, rdx
xor r12d, r12d
xor r14d, r14d
mov r9, r12
mov rdx, rax
mov r8, rcx
mov rcx, r10
mov rax, r9
jmp 0x41202a
mov rax, qword [rdi + 8]
mov rcx, qword [rdi]
mov qword [rsp + 0x18], rcx
mov qword [rsp], rbx
mov dword [rsp + 8], esi
mov qword [rsp + 0x10], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rdx
lea rax, [r8 + 4]
mov qword [rsp + 0x30], rax
call fcn.00412520
mov rbp, qword [rsp + 0x48]
add rsp, 0x50
ret
mov rax, qword [rdi]
cmp rax, 8
jne 0x4124c4
movzx eax, byte [rbx]
mov rcx, rsi
mov edx, 0x13
shl edx, cl
cmp ecx, 0x20
sbb esi, esi
and esi, edx
or eax, esi
mov byte [rbx], al
mov rbp, qword [rsp + 0x48]
add rsp, 0x50
ret
movzx eax, byte [r8]
movzx edx, byte [rbx]
mov rcx, rsi
mov edi, 0x33
shl edi, cl
cmp ecx, 0x20
sbb r8d, r8d
and r8d, edi
not r8d
and edx, r8d
mov byte [rbx], dl
and eax, 3
or eax, 0x10
shl eax, cl
cmp ecx, 0x20
sbb esi, esi
and esi, eax
or edx, esi
mov byte [rbx], dl
mov rbp, qword [rsp + 0x48]
add rsp, 0x50
ret
mov rbp, qword [rsp + 0x48]
add rsp, 0x50
ret
call fcn.00452210
jmp fcn.00411ec0