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

Disassembly:
lea r12, [rsp - 0x138]
cmp r12, qword [r14 + 0x10]
jbe 0x541fdb
sub rsp, 0x1b8
mov qword [rsp + 0x1b0], rbp
lea rbp, [rsp + 0x1b0]
mov qword [rsp + 0x1d0], rcx
mov qword [rsp + 0x1d8], rdi
mov r13, 0
mov qword [rsp + 0x1a8], r13
mov byte [rsp + 0x2f], 0
nop
mov rdx, rsi
and rsi, 0x1f
mov qword [rsp + 0x60], rsi
nop word [rax + rax]
cmp rsi, 0x14
ja 0x5417c0
lea r10, [rsi - 0x12]
cmp r10, 1
jbe 0x5417ea
cmp rsi, 0x14
je 0x5417cc
jmp 0x541f8a
cmp rsi, 0x16
jbe 0x5417ea
cmp rsi, 0x17
jne 0x5417e0
cmp qword [rdi], 0
sete sil
jmp 0x541805
cmp rsi, 0x1a
jne 0x541f8a
bt edx, 9
jb 0x541835
bt edx, 7
jae 0x5417fb
mov rsi, qword [rdi]
jmp 0x5417fe
mov rsi, rdi
test rsi, rsi
sete sil
test sil, sil
je 0x541835
test byte [rbx], al
mov rax, rbx
lea rbx, [0x00abc69b]
mov ecx, 4
nop dword [rax + rax]
call fcn.0050e160
mov rbp, qword [rsp + 0x1b0]
add rsp, 0x1b8
ret
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xc0], rdi
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0xb8], rax
mov byte [rsp + 0x2e], r8b
mov qword [rsp + 0x1c8], rbx
mov byte [rsp + 0x2d], r9b
mov rsi, qword [rbx + 0x68]
inc rsi
mov qword [rbx + 0x68], rsi
cmp rsi, 0x3e8
ja 0x54187f
xor esi, esi
jmp 0x5419b6
mov rax, rcx
mov rbx, rdi
mov rcx, rdx
call fcn.00495200
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x70], rax
lea rdx, [0x009e4e40]
mov qword [rsp + 0xf8], rdx
lea rsi, [rsp + 0x70]
mov qword [rsp + 0x100], rsi
mov rsi, qword [rsp + 0x1c8]
mov rbx, qword [rsi + 0x70]
lea rcx, [rsp + 0xf8]
lea rax, [0x00a0d780]
call fcn.0040f8a0
test bl, bl
jne 0x541e46
mov rax, qword [rsp + 0x38]
call fcn.0040bbc0
lea rcx, [0x009e4e40]
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0x100], rax
mov rdx, qword [rsp + 0x1c8]
mov rbx, qword [rdx + 0x70]
lea rax, [0x00a0d780]
lea rcx, [rsp + 0xf8]
call fcn.0040fce0
test byte [rax], al
mov rax, qword [rsp + 0x1c8]
mov rcx, qword [rax + 0x70]
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x68], rdx
lea rdx, [0x009e4e40]
mov qword [rsp + 0xf8], rdx
lea rdx, [rsp + 0x68]
mov qword [rsp + 0x100], rdx
movups xmmword [rsp + 0x108], xmm15
movups xmmword [rsp + 0x118], xmm15
lea rdx, [0x005420e0]
mov qword [rsp + 0x108], rdx
mov qword [rsp + 0x110], rcx
mov rcx, qword [rsp + 0xf8]
mov rdx, qword [rsp + 0x100]
mov qword [rsp + 0x118], rcx
mov qword [rsp + 0x120], rdx
lea rcx, [rsp + 0x108]
mov qword [rsp + 0x1a8], rcx
mov byte [rsp + 0x2f], 1
mov rbx, rax
mov esi, 1
mov byte [rsp + 0x2c], sil
mov rax, rbx
mov ebx, 0x7b
call fcn.0050e640
mov rax, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x60]
nop dword [rax]
call fcn.00493dc0
mov qword [rsp + 0x30], rax
mov rbx, rax
mov rcx, rbx
lea rax, [0x00a616a0]
call fcn.0044af80
mov qword [rsp + 0xb0], rax
mov rbx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0xc8]
call fcn.00494680
mov qword [rsp + 0x80], rax
xor ecx, ecx
jmp 0x541a3b
mov rdx, qword [rsp + 0x48]
lea rcx, [rdx + 1]
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x48], rcx
call fcn.00494580
test al, al
je 0x541b4e
mov rax, qword [rsp + 0x80]
call fcn.004943c0
mov rdx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x48]
cmp rdx, rsi
jbe 0x541e3b
shl rsi, 6
mov qword [rsp + 0x58], rsi
mov r9, qword [rsp + 0xb0]
mov qword [r9 + rsi + 0x10], rcx
lea rcx, [r9 + rsi]
mov qword [rsp + 0xa8], rcx
lea rdi, [r9 + rsi]
lea r10, [r9 + rsi]
lea r10, [r10 + 8]
lea r11, [r9 + rsi]
lea r11, [r11 + 0x18]
mov qword [rsp + 0xa0], r11
lea r12, [r9 + rsi]
lea r12, [r12 + 0x20]
mov qword [rsp + 0x98], r12
cmp dword [0x011546d0], 0
jne 0x541ad0
mov qword [r9 + rsi], rax
mov qword [r9 + rsi + 8], rbx
jmp 0x541add
call fcn.004656c0
mov rdi, r10
call fcn.00465800
mov rax, qword [rsp + 0x80]
call fcn.004944a0
mov rdx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0xb0]
mov qword [rsi + rdx + 0x28], rcx
cmp dword [0x011546d0], 0
jne 0x541b11
mov qword [rsi + rdx + 0x18], rax
mov qword [rsi + rdx + 0x20], rbx
jmp 0x541b2b
mov rdi, qword [rsp + 0xa0]
call fcn.004656c0
mov rdi, qword [rsp + 0x98]
call fcn.00465800
mov rax, qword [rsp + 0xa8]
call fcn.005438a0
nop dword [rax + rax]
test rax, rax
je 0x541a2a
jmp 0x541d1e
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x30]
mov rcx, rbx
nop
call fcn.0040bce0
movups xmmword [rsp + 0x128], xmm15
movups xmmword [rsp + 0x138], xmm15
lea rdx, [0x00542040]
mov qword [rsp + 0x128], rdx
mov rdx, qword [rsp + 0xb0]
mov qword [rsp + 0x130], rdx
mov rsi, qword [rsp + 0x30]
mov qword [rsp + 0x138], rsi
mov qword [rsp + 0x140], rsi
mov rbx, rax
lea rcx, [rsp + 0x128]
lea rax, [0x009d8020]
nop dword [rax]
call fcn.004a0940
mov rdx, qword [rsp + 0x30]
test rdx, rdx
jle 0x541bdb
mov rax, qword [rsp + 0xb0]
xor ecx, ecx
jmp 0x541c3b
mov rax, qword [rsp + 0x1c8]
mov ebx, 0x7d
call fcn.0050e640
mov rcx, qword [rsp + 0x1c8]
dec qword [rcx + 0x68]
movzx ecx, byte [rsp + 0x2c]
nop
test cl, 1
je 0x541c19
and ecx, 0xfffffffe
mov byte [rsp + 0x2f], cl
mov rdx, qword [rsp + 0x1a8]
mov rax, qword [rdx]
call rax
mov rbp, qword [rsp + 0x1b0]
add rsp, 0x1b8
ret
mov r8, qword [rsp + 0xa8]
lea rax, [r8 + 0x40]
mov rcx, rdx
mov rdx, rsi
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0xa8], rax
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x168], xmm0
movups xmm0, xmmword [rax + 0x10]
movups xmmword [rsp + 0x178], xmm0
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rsp + 0x188], xmm0
movups xmm0, xmmword [rax + 0x30]
movups xmmword [rsp + 0x198], xmm0
test rcx, rcx
jle 0x541c8e
mov rax, qword [rsp + 0x1c8]
mov ebx, 0x2c
call fcn.0050e640
mov rbx, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x1a0]
mov rax, qword [rsp + 0x1c8]
movzx edi, byte [rsp + 0x2d]
call fcn.00543b20
mov rax, qword [rsp + 0x1c8]
mov ebx, 0x3a
nop dword [rax]
call fcn.0050e640
mov rdx, qword [rsp + 0xb8]
mov rsi, qword [rdx]
mov rbx, qword [rsp + 0x180]
mov rcx, qword [rsp + 0x188]
mov rdi, qword [rsp + 0x190]
mov rax, qword [rsp + 0x1c8]
movzx r8d, byte [rsp + 0x2d]
mov r9, rsi
movzx esi, byte [rsp + 0x2e]
nop
call r9
mov rdx, qword [rsp + 0x40]
inc rdx
mov rsi, qword [rsp + 0x30]
cmp rsi, rdx
jg 0x541c29
jmp 0x541bdb
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x88], rbx
mov rax, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x60]
call fcn.004974a0
mov rdx, qword [rax + 0xf8]
mov rax, rbx
call rdx
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x58], rbx
mov rdx, qword [rsp + 0x50]
mov rdx, qword [rdx + 0x18]
mov rax, qword [rsp + 0x88]
call rdx
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0x78], rbx
lea rdx, [rsp + 0x148]
movups xmmword [rdx], xmm15
lea rsi, [rsp + 0x158]
movups xmmword [rsi], xmm15
mov rax, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x58]
call fcn.0040bc40
lea rdx, [0x009e4c00]
mov qword [rsp + 0x148], rdx
mov qword [rsp + 0x150], rax
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0x78]
call fcn.0040bc40
lea rdx, [0x009e4c00]
mov qword [rsp + 0x158], rdx
mov qword [rsp + 0x160], rax
lea rax, [0x00ad4031]
mov ebx, 0x24
lea rcx, [rsp + 0x148]
mov edi, 2
mov rsi, rdi
call fcn.004e6800
movups xmmword [rsp + 0xd8], xmm15
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe0], rbx
lea rax, [0x00a41c40]
lea rbx, [rsp + 0xd8]
call fcn.0040ba40
call fcn.004373c0
mov rax, rsi
mov rcx, rdx
call fcn.00465b60
mov rax, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x60]
nop dword [rax + rax]
call fcn.004974a0
movups xmmword [rsp + 0xe8], xmm15
test rax, rax
je 0x541e77
mov rax, qword [rax + 8]
mov qword [rsp + 0xe8], rax
mov qword [rsp + 0xf0], rbx
lea rax, [0x00acb196]
mov ebx, 0x1a
lea rcx, [rsp + 0xe8]
mov edi, 1
mov rsi, rdi
call fcn.004e9600
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x58], rbx
lea rax, [0x00a47100]
nop dword [rax]
call fcn.0040e6a0
mov rdx, qword [rsp + 0x60]
mov qword [rax + 0x10], rdx
cmp dword [0x011546d0], 0
jne 0x541f5d
mov rcx, qword [rsp + 0xc8]
mov qword [rax], rcx
mov rcx, qword [rsp + 0xc0]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0x58]
mov qword [rax + 0x20], rcx
cmp dword [0x011546d0], 0
jne 0x541f4a
mov rcx, qword [rsp + 0x90]
mov qword [rax + 0x18], rcx
movups xmmword [rsp + 0xd8], xmm15
lea rcx, [0x00dbe5e0]
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xe0], rax
lea rax, [0x00a41c40]
lea rbx, [rsp + 0xd8]
nop
call fcn.0040ba40
call fcn.004373c0
lea rdi, [rax + 0x18]
mov rcx, qword [rsp + 0x90]
call fcn.004657c0
jmp 0x541f10
mov rdi, rax
mov rcx, qword [rsp + 0xc8]
call fcn.004657c0
lea rcx, [rax + 8]
mov rdi, rcx
mov rdx, qword [rsp + 0xc0]
nop dword [rax]
call fcn.004657e0
jmp 0x541ef2
lea rax, [0x00a4e0e0]
call fcn.0040e6a0
mov qword [rax + 8], 0x13
lea rcx, [0x00ac45bd]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rax + 0x10], rcx
mov rbx, rax
lea rax, [0x00a093a0]
nop dword [rax + rax]
call fcn.004373c0
nop
call fcn.00436260
mov rbp, qword [rsp + 0x1b0]
add rsp, 0x1b8
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
mov byte [rsp + 0x30], r8b
mov byte [rsp + 0x31], r9b
nop
call fcn.00463440
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
movzx r8d, byte [rsp + 0x30]
movzx r9d, byte [rsp + 0x31]
jmp fcn.00541740