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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x4149ee
sub rsp, 0x60
mov qword [rsp + 0x58], rbp
lea rbp, [rsp + 0x58]
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x4149d1
movzx ecx, byte [rax + 8]
nop word [rax + rax]
test cl, 4
jne 0x4149b8
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rcx + 0x48]
mov rbx, qword [rdx]
mov esi, dword [rax + 0xc]
lea rdi, [rsp + 0x78]
mov qword [rsp], rdi
mov qword [rsp + 8], rsi
call rbx
mov rax, qword [rsp + 0x10]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x70]
movzx ebx, byte [rcx + 8]
xor ebx, 4
mov byte [rcx + 8], bl
cmp qword [rcx + 0x10], 0
je 0x41494c
mov rdx, qword [rsp + 0x68]
jmp 0x4146fc
inc r9
nop dword [rax]
cmp r9, 8
jae 0x4148ee
test byte [rbx], al
movzx r10d, byte [rbx + r9]
cmp al, r10b
je 0x414845
nop word [rax + rax]
cmp r10b, 1
ja 0x41468f
test rcx, rcx
je 0x414838
test r10b, r10b
jne 0x414656
cmp qword [rsi + 0x18], 0
jne 0x414830
mov r9, qword [rsi]
inc r9
movzx r10d, byte [rsi + 9]
cmp r9, 8
jle 0x414825
mov r11, rcx
mov ecx, r10d
mov r12d, 1
shl r12, cl
shr r12, 1
lea r13, [r12 + r12*2]
lea r12, [r12 + r13*4]
cmp r9, r12
jbe 0x41474e
mov qword [rsp], rdx
mov qword [rsp + 8], rsi
nop dword [rax]
call fcn.004112e0
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x30]
mov rax, rdx
mov rdx, qword [rsp + 0x68]
movzx ebx, byte [rcx + 9]
mov rsi, rcx
mov ecx, ebx
mov r8d, 1
shl r8, cl
lea rbx, [r8 - 1]
and rbx, rax
cmp qword [rsi + 0x18], 0
nop word [rax + rax]
jne 0x41491b
movzx r8d, word [rdx + 0x52]
imul rbx, r8
add rbx, qword [rsi + 0x10]
mov r8, rax
shr rax, 0x38
cmp al, 5
jae 0x414741
add eax, 5
mov byte [rsp + 0x27], al
xor ecx, ecx
xor edi, edi
jmp 0x414906
movzx r9d, word [rsi + 0xa]
cmp cl, 0xf
jbe 0x41475d
mov ecx, 0xf
and ecx, 0xf
mov r10d, 1
shl r10d, cl
cmp r9w, r10w
jae 0x4146d3
test r11, r11
je 0x4147f6
test byte [r11], al
mov rcx, rdi
and rdi, 7
mov byte [r11 + rdi], al
mov rax, rcx
shl rcx, 4
mov rbx, r11
lea rdi, [r11 + rcx]
lea rdi, [rdi + 8]
mov rcx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x78]
mov qword [rdi + 8], rcx
cmp dword [0x00811460], 0
jne 0x4147ef
mov qword [rdi], r8
inc qword [rsi]
movzx ecx, byte [rdx + 0x51]
imul rcx, rax
movzx eax, byte [rsi + 8]
lea rcx, [rcx + rbx]
lea rcx, [rcx + 0x88]
test al, 4
je 0x41499f
and eax, 0xfffffffb
mov byte [rsi + 8], al
mov qword [rsp + 0x88], rcx
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
ret
call fcn.0046caa0
jmp 0x4147b5
mov qword [rsp], rsi
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rbx
call fcn.0040eee0
mov r11, qword [rsp + 0x18]
movzx eax, byte [rsp + 0x27]
mov rdx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
xor edi, edi
nop
jmp 0x414778
mov r11, rcx
mov ecx, r10d
jmp 0x41474e
mov r11, rcx
jmp 0x414773
mov rcx, rbx
mov rdi, r9
nop
jmp 0x41468f
mov r10, r9
shl r9, 4
mov r11, rbx
lea rbx, [r9 + rbx]
lea rbx, [rbx + 8]
mov r9, qword [rsp + 0x80]
nop
cmp qword [rbx + 8], r9
je 0x414871
mov rbx, r11
mov r9, r10
jmp 0x414656
mov rbx, qword [rbx]
mov r12, qword [rsp + 0x78]
cmp rbx, r12
jne 0x41489a
xor ebx, ebx
test bl, bl
je 0x41488f
mov rbx, r11
mov r9, r10
jmp 0x414656
mov rbx, r11
mov rax, r10
jmp 0x4147b8
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x48], rcx
mov qword [rsp], rbx
mov qword [rsp + 8], r12
mov qword [rsp + 0x10], r9
call fcn.00402a40
movzx ebx, byte [rsp + 0x18]
xor ebx, 1
movzx eax, byte [rsp + 0x27]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x50]
jmp 0x414880
movzx r9d, word [rdx + 0x52]
mov r10, rbx
lea rbx, [rbx + r9]
lea rbx, [rbx - 8]
mov rbx, qword [rbx]
test rbx, rbx
je 0x414913
mov qword [rsp + 0x50], rbx
xor r9d, r9d
jmp 0x414660
mov rbx, r10
jmp 0x414694
mov qword [rsp + 0x38], rbx
mov qword [rsp], rdx
mov qword [rsp + 8], rsi
mov qword [rsp + 0x10], rbx
call fcn.00414e00
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x70]
jmp 0x414726
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax + 0x40]
mov rdx, qword [rcx]
mov qword [rsp], rdx
mov qword [rsp + 8], rcx
mov byte [rsp + 0x10], 1
call fcn.0040daa0
mov rax, qword [rsp + 0x18]
cmp dword [0x00811460], 0
jne 0x41498f
mov rdx, qword [rsp + 0x70]
mov qword [rdx + 0x10], rax
mov rax, qword [rsp + 0x30]
mov rcx, rdx
jmp 0x41464c
mov rdx, qword [rsp + 0x70]
lea rdi, [rdx + 0x10]
call fcn.0046c920
jmp 0x414982
lea rax, [0x0065f162]
mov qword [rsp], rax
mov qword [rsp + 8], 0x15
call fcn.00439220
lea rax, [0x0065f162]
mov qword [rsp], rax
mov qword [rsp + 8], 0x15
call fcn.00439220
lea rax, [0x0061e920]
mov qword [rsp], rax
lea rax, [0x006a1940]
mov qword [rsp + 8], rax
call fcn.00438920
nop
call fcn.0046abe0
jmp fcn.004145c0