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

Disassembly:
lea r12, [rsp - 0x1e0]
cmp r12, qword [r14 + 0x10]
jbe 0x59809a
push rbp
mov rbp, rsp
sub rsp, 0x258
mov qword [rsp + 0x268], rax
mov rdx, qword [rax + 0x2e8]
mov r11, qword [rax + 0x2f0]
mov qword [rsp + 0x60], r11
xor ecx, ecx
jmp 0x596f23
add rdx, 0x38
inc rcx
cmp rcx, r11
jge 0x5979ca
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x88], rdx
mov r12, qword [rdx]
mov qword [rsp + 0x220], r12
movups xmm0, xmmword [rdx + 8]
movups xmmword [rsp + 0x228], xmm0
movups xmm0, xmmword [rdx + 0x18]
movups xmmword [rsp + 0x238], xmm0
movups xmm0, xmmword [rdx + 0x28]
movups xmmword [rsp + 0x248], xmm0
mov r12, qword [rsp + 0x228]
mov r13, qword [rsp + 0x220]
nop dword [rax + rax]
cmp r12, 4
jne 0x59770f
cmp qword [r13], 2
jne 0x59770f
cmp qword [r13 + 8], 5
nop word [rax + rax]
jne 0x59770f
cmp qword [r13 + 0x10], 0x1d
jne 0x59770f
mov r13, qword [r13 + 0x18]
add r13, 0xfffffffffffffff2
nop dword [rax]
cmp r13, 0x17
ja 0x597705
lea rbx, [0x0072c2a0]
jmp qword [rbx + r13*8]
mov ebx, 1
jmp 0x59779b
cmp qword [0x008bf948], r12
jne 0x597726
mov r15, qword [0x008bf940]
xor ebx, ebx
jmp 0x5979e0
mov ebx, 1
jmp 0x59779b
mov rdx, qword [rsp + 0x240]
mov rsi, qword [rsp + 0x248]
mov rdi, qword [rsp + 0x250]
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x98], rsi
mov qword [rsp + 0xa0], rdi
lea rax, [rsp + 0x90]
mov rbx, rax
mov ecx, 0x30
call fcn.0054a9e0
test al, al
jne 0x597a2d
jmp 0x5979fc
mov rax, qword [rsp + 0x268]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x88]
mov r11, qword [rsp + 0x60]
xor ebx, ebx
cmp byte [rsp + 0x238], 0
je 0x596f1c
test bl, bl
je 0x596f1c
mov r12, qword [rax + 0x328]
mov rbx, qword [rax + 0x320]
inc rbx
mov r13, qword [rax + 0x318]
mov r15, qword [rsp + 0x220]
mov rsi, qword [rsp + 0x228]
mov rdi, qword [rsp + 0x230]
cmp r12, rbx
jae 0x59786e
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x78], r15
mov qword [rsp + 0x48], rsi
mov rax, r13
mov rcx, r12
mov edi, 1
lea rsi, [0x00671d80]
call fcn.0044b880
mov rdx, qword [rsp + 0x268]
mov qword [rdx + 0x328], rcx
cmp dword [0x00921500], 0
je 0x59783b
call fcn.004665c0
mov qword [r11], rax
mov r12, qword [rdx + 0x318]
mov qword [r11 + 8], r12
mov qword [rdx + 0x318], rax
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov r11, qword [rsp + 0x60]
mov r15, qword [rsp + 0x78]
mov r13, rax
mov rax, qword [rsp + 0x268]
mov qword [rax + 0x320], rbx
lea r12, [rbx + rbx*2]
mov qword [r13 + r12*8 - 0x10], rsi
mov qword [r13 + r12*8 - 8], rdi
cmp dword [0x00921500], 0
je 0x5978a3
mov rbx, r11
call fcn.004665c0
mov qword [r11], r15
mov rsi, qword [r13 + r12*8 - 0x18]
mov qword [r11 + 8], rsi
mov r11, rbx
mov qword [r13 + r12*8 - 0x18], r15
jmp 0x596f1c
xor eax, eax
xor ebx, ebx
add rsp, 0x258
pop rbp
ret
inc rbx
nop word [rax + rax]
cmp rbx, r12
jge 0x59772d
mov rsi, qword [r13 + rbx*8]
mov rdi, qword [r15 + rbx*8]
cmp rdi, rsi
je 0x5979d7
jmp 0x597726
lea rax, [0x00673e00]
call fcn.0040d680
mov qword [rax + 8], 0x23
lea rcx, [0x006bcdb1]
mov qword [rax], rcx
mov rbx, rax
lea rax, [0x00728640]
add rsp, 0x258
pop rbp
ret
cmp qword [rsp + 0x98], 0
je 0x59777f
mov qword [rsp + 0x1e0], 0
movups xmmword [rsp + 0x1e8], xmm15
lea rax, [rsp + 0x90]
lea rbx, [rsp + 0x1e0]
mov ecx, 0x30
call fcn.0054a9e0
test al, al
je 0x597c7b
mov qword [rsp + 0x138], 0
movups xmmword [rsp + 0x140], xmm15
lea rax, [rsp + 0x1e0]
lea rbx, [rsp + 0x138]
call fcn.0054a300
nop dword [rax]
test al, al
je 0x597c4a
cmp qword [rsp + 0x1e8], 0
je 0x597ac2
mov rdx, qword [rsp + 0x1e0]
cmp byte [rdx], 0x86
nop
je 0x597acf
mov rdx, qword [rsp + 0x268]
jmp 0x597a2d
lea rax, [rsp + 0x1e0]
mov rbx, rax
mov ecx, 0xffffff86
nop
call fcn.0054a9e0
test al, al
je 0x597c16
mov rdx, qword [rsp + 0x140]
mov r11, qword [rsp + 0x138]
nop dword [rax]
cmp qword [0x008bf968], rdx
jne 0x597b17
mov r12, qword [0x008bf960]
xor eax, eax
jmp 0x597caf
nop word [rax + rax]
cmp qword [0x008bf988], rdx
jne 0x597cdf
mov r12, qword [0x008bf980]
xor eax, eax
jmp 0x597ccd
mov rbx, qword [rsp + 0x1e0]
mov rcx, qword [rsp + 0x1e8]
xor eax, eax
call fcn.0044f9a0
mov rdx, qword [rsp + 0x268]
mov rcx, qword [rdx + 0x3b8]
mov rsi, qword [rdx + 0x3b0]
inc rsi
mov rdi, qword [rdx + 0x3a8]
cmp rcx, rsi
jae 0x597bda
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x50], rbx
mov rax, rdi
mov rbx, rsi
mov edi, 1
lea rsi, [0x0065b7a0]
call fcn.0044b880
mov rdx, qword [rsp + 0x268]
mov qword [rdx + 0x3b8], rcx
cmp dword [0x00921500], 0
je 0x597bc3
call fcn.004665c0
mov qword [r11], rax
mov r12, qword [rdx + 0x3a8]
mov qword [r11 + 8], r12
mov qword [rdx + 0x3a8], rax
mov rdi, rax
mov rsi, rbx
mov rax, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x50]
mov qword [rdx + 0x3b0], rsi
lea r11, [rsi - 1]
shl r11, 4
mov qword [rdi + r11 + 8], rbx
cmp dword [0x00921500], 0
je 0x597c0d
mov rcx, r11
call fcn.004665c0
mov qword [r11], rax
mov r12, qword [rcx + rdi]
mov qword [r11 + 8], r12
mov r11, rcx
mov qword [rdi + r11], rax
jmp 0x597a2d
lea rax, [0x00673e00]
nop dword [rax]
call fcn.0040d680
mov qword [rax + 8], 0x23
lea rcx, [0x006bcdb1]
mov qword [rax], rcx
mov rbx, rax
lea rax, [0x00728640]
add rsp, 0x258
pop rbp
ret
lea rax, [0x00673e00]
call fcn.0040d680
mov qword [rax + 8], 0x23
lea rcx, [0x006bcdb1]
mov qword [rax], rcx
mov rbx, rax
lea rax, [0x00728640]
add rsp, 0x258
pop rbp
ret
lea rax, [0x00673e00]
call fcn.0040d680
mov qword [rax + 8], 0x23
lea rcx, [0x006bcdb1]
mov qword [rax], rcx
mov rbx, rax
lea rax, [0x00728640]
add rsp, 0x258
pop rbp
ret
inc rax
cmp rax, rdx
jge 0x597b3b
mov r13, qword [r11 + rax*8]
mov r15, qword [r12 + rax*8]
cmp r15, r13
je 0x597cac
jmp 0x597b17
inc rax
cmp rax, rdx
jge 0x597cec
mov r13, qword [r11 + rax*8]
mov r15, qword [r12 + rax*8]
cmp r15, r13
je 0x597cca
mov rdx, qword [rsp + 0x268]
jmp 0x597a2d
mov rbx, qword [rsp + 0x1e0]
mov rcx, qword [rsp + 0x1e8]
xor eax, eax
nop
call fcn.0044f9a0
mov rdx, qword [rsp + 0x268]
mov rcx, qword [rdx + 0x3d0]
mov rsi, qword [rdx + 0x3c8]
inc rsi
mov rdi, qword [rdx + 0x3c0]
cmp rcx, rsi
jae 0x597d8d
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x50], rbx
mov rax, rdi
mov rbx, rsi
mov edi, 1
lea rsi, [0x0065b7a0]
call fcn.0044b880
mov rdx, qword [rsp + 0x268]
mov qword [rdx + 0x3d0], rcx
cmp dword [0x00921500], 0
je 0x597d76
call fcn.004665c0
mov qword [r11], rax
mov r12, qword [rdx + 0x3c0]
mov qword [r11 + 8], r12
mov qword [rdx + 0x3c0], rax
mov rdi, rax
mov rsi, rbx
mov rax, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x50]
mov qword [rdx + 0x3c8], rsi
lea r11, [rsi - 1]
shl r11, 4
mov qword [rdi + r11 + 8], rbx
cmp dword [0x00921500], 0
je 0x597dc0
mov rcx, r11
call fcn.004665c0
mov qword [r11], rax
mov r12, qword [rcx + rdi]
mov qword [r11 + 8], r12
mov r11, rcx
mov qword [rdi + r11], rax
jmp 0x597a2d
mov qword [rsp + 8], rax
nop
call fcn.004646a0
mov rax, qword [rsp + 8]
jmp fcn.00596ee0