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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x40b8e1
sub rsp, 0x58
mov qword [rsp + 0x50], rbp
lea rbp, [rsp + 0x50]
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x40b8c8
mov rcx, qword [rax]
test rcx, rcx
je 0x40b8c8
movzx ecx, byte [rax + 8]
test cl, 4
jne 0x40b8ad
movzx ecx, byte [rax + 9]
test cl, cl
jne 0x40b6c5
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x48], rcx
mov rbx, qword [rsp + 0x78]
cmp rbx, 0x20
jge 0x40b52f
xor eax, eax
mov qword [rsp + 0x30], rax
cmp rax, 8
jae 0x40b48c
lea rdx, [rcx + rax]
test byte [rdx], al
movzx edx, byte [rcx + rax]
test dl, dl
jne 0x40b4a5
inc rax
mov qword [rsp + 0x30], rax
cmp rax, 8
jb 0x40b470
lea rax, [0x008b4ae0]
mov qword [rsp + 0x80], rax
mov rbp, qword [rsp + 0x50]
add rsp, 0x58
ret
mov rdx, rax
shl rax, 4
lea rbx, [rcx + rax + 8]
test byte [rbx], al
mov rbx, qword [rcx + rax + 0x10]
mov rsi, qword [rsp + 0x78]
cmp rbx, rsi
je 0x40b4c7
mov rax, rdx
jmp 0x40b47e
mov rax, qword [rcx + rax + 8]
mov rbx, qword [rsp + 0x70]
cmp rax, rbx
je 0x40b4fe
mov qword [rsp + 0x10], rsi
mov qword [rsp], rax
mov qword [rsp + 8], rbx
call fcn.00454300
movzx eax, byte [rsp + 0x18]
test al, al
jne 0x40b4fe
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x48]
jmp 0x40b47e
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 0x52]
mov rcx, qword [rsp + 0x30]
imul rcx, rax
mov rax, qword [rsp + 0x48]
lea rax, [rax + rcx + 0x88]
mov qword [rsp + 0x80], rax
mov rbp, qword [rsp + 0x50]
add rsp, 0x58
ret
xor edx, edx
mov rsi, 8
cmp rdx, 8
jae 0x40b55a
lea rdi, [rcx + rdx]
test byte [rdi], al
movzx edi, byte [rcx + rdx]
test dil, dil
jne 0x40b5e2
inc rdx
cmp rdx, 8
jb 0x40b53e
mov qword [rsp + 0x38], rsi
cmp rsi, 8
jne 0x40b57e
lea rax, [0x008b4ae0]
mov qword [rsp + 0x80], rax
mov rbp, qword [rsp + 0x50]
add rsp, 0x58
ret
shl rsi, 4
lea rdx, [rcx + rsi + 8]
test byte [rdx], al
mov rdx, qword [rcx + rsi + 8]
mov rsi, qword [rsp + 0x70]
mov qword [rsp + 0x10], rbx
mov qword [rsp], rdx
mov qword [rsp + 8], rsi
call fcn.00454300
movzx eax, byte [rsp + 0x18]
test al, al
jne 0x40b5b1
jmp 0x40b565
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 0x52]
mov rcx, qword [rsp + 0x38]
imul rax, rcx
mov rcx, qword [rsp + 0x48]
lea rax, [rcx + rax + 0x88]
mov qword [rsp + 0x80], rax
mov rbp, qword [rsp + 0x50]
add rsp, 0x58
ret
mov rdi, rdx
shl rdx, 4
lea r8, [rcx + rdx + 8]
test byte [r8], al
mov r8, qword [rcx + rdx + 0x10]
cmp r8, rbx
je 0x40b603
mov rdx, rdi
jmp 0x40b551
mov r8, qword [rcx + rdx + 8]
mov r9, qword [rsp + 0x70]
cmp r8, r9
je 0x40b886
movzx r10d, byte [r9]
movzx r11d, byte [r8]
cmp r10b, r11b
je 0x40b62b
mov rdx, rdi
jmp 0x40b551
movzx r10d, byte [r9 + 1]
movzx r11d, byte [r8 + 1]
cmp r10b, r11b
jne 0x40b623
movzx r10d, byte [r9 + 2]
movzx r11d, byte [r8 + 2]
cmp r10b, r11b
jne 0x40b623
movzx r10d, byte [r9 + 3]
movzx r11d, byte [r8 + 3]
cmp r10b, r11b
jne 0x40b623
lea r10, [rbx + r9 - 4]
test byte [r10], al
lea r10, [rbx + r8 - 4]
test byte [r10], al
movzx r10d, byte [rbx + r9 - 4]
movzx r11d, byte [rbx + r8 - 4]
cmp r10b, r11b
je 0x40b681
mov rdx, rdi
jmp 0x40b551
movzx r10d, byte [rbx + r9 - 3]
movzx r11d, byte [rbx + r8 - 3]
cmp r10b, r11b
jne 0x40b679
movzx r10d, byte [rbx + r9 - 2]
movzx r11d, byte [rbx + r8 - 2]
cmp r10b, r11b
jne 0x40b679
movzx r9d, byte [rbx + r9 - 1]
movzx r8d, byte [rbx + r8 - 1]
cmp r9b, r8b
jne 0x40b679
cmp rsi, 8
jne 0x40b6c5
mov rdx, rdi
mov rsi, rdx
jmp 0x40b551
mov rcx, qword [rsp + 0x60]
mov rcx, qword [rcx + 0x30]
mov rcx, qword [rcx + 0x18]
mov rdx, qword [rcx]
mov ecx, dword [rax + 0xc]
mov qword [rsp + 8], rcx
lea rcx, [rsp + 0x70]
mov qword [rsp], rcx
mov rcx, qword [rdx]
call rcx
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x10]
mov rbx, qword [rsp + 0x68]
movzx esi, byte [rbx + 9]
mov rdx, rcx
mov ecx, esi
mov rdi, 1
shl rdi, cl
cmp cl, 0x40
sbb rcx, rcx
and rcx, rdi
dec rcx
mov rsi, rdx
and rdx, rcx
movzx eax, word [rax + 0x54]
imul rdx, rax
mov rdi, qword [rbx + 0x10]
add rdi, rdx
mov r8, qword [rbx + 0x18]
test r8, r8
je 0x40b761
movzx edx, byte [rbx + 8]
test dl, 8
je 0x40b87e
and rcx, rsi
imul rcx, rax
lea rax, [r8 + rcx]
test byte [rax], al
movzx ecx, byte [r8 + rcx]
dec ecx
cmp cl, 3
jae 0x40b876
shr rsi, 0x38
cmp sil, 4
jae 0x40b86e
lea eax, [rsi + 4]
mov byte [rsp + 0x27], al
mov qword [rsp + 0x40], rdi
xor ecx, ecx
mov qword [rsp + 0x28], rcx
cmp rcx, 8
jae 0x40b7a4
lea rdx, [rcx + rdi]
test byte [rdx], al
movzx edx, byte [rcx + rdi]
cmp dl, al
je 0x40b7dc
inc rcx
mov qword [rsp + 0x28], rcx
cmp rcx, 8
jb 0x40b788
mov rcx, qword [rsp + 0x60]
movzx ecx, word [rcx + 0x54]
lea rdx, [rcx + rdi - 8]
test byte [rdx], al
mov rcx, qword [rcx + rdi - 8]
test rcx, rcx
je 0x40b7c3
mov rdi, rcx
jmp 0x40b776
lea rax, [0x008b4ae0]
mov qword [rsp + 0x80], rax
mov rbp, qword [rsp + 0x50]
add rsp, 0x58
ret
mov rdx, rcx
shl rcx, 4
lea rbx, [rcx + rdi + 8]
test byte [rbx], al
mov rbx, qword [rcx + rdi + 0x10]
mov rsi, qword [rsp + 0x78]
cmp rbx, rsi
je 0x40b7fe
mov rcx, rdx
jmp 0x40b796
mov rcx, qword [rcx + rdi + 8]
mov rbx, qword [rsp + 0x70]
cmp rcx, rbx
je 0x40b83d
mov qword [rsp + 0x10], rsi
mov qword [rsp], rcx
mov qword [rsp + 8], rbx
call fcn.00454300
movzx eax, byte [rsp + 0x18]
test al, al
jne 0x40b83d
movzx eax, byte [rsp + 0x27]
mov rcx, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x40]
jmp 0x40b796
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 0x52]
mov rcx, qword [rsp + 0x28]
imul rcx, rax
mov rax, qword [rsp + 0x40]
lea rax, [rcx + rax + 0x88]
mov qword [rsp + 0x80], rax
mov rbp, qword [rsp + 0x50]
add rsp, 0x58
ret
mov rax, rsi
jmp 0x40b772
mov rdi, rax
jmp 0x40b761
shr rcx, 1
jmp 0x40b744
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 0x52]
imul rdi, rax
lea rax, [rcx + rdi + 0x88]
mov qword [rsp + 0x80], rax
mov rbp, qword [rsp + 0x50]
add rsp, 0x58
ret
lea rax, [0x006d8f70]
mov qword [rsp], rax
mov qword [rsp + 8], 0x21
call fcn.0042aea0
ud2
lea rax, [0x008b4ae0]
mov qword [rsp + 0x80], rax
mov rbp, qword [rsp + 0x50]
add rsp, 0x58
ret
call fcn.00452210
jmp fcn.0040b3f0