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

Disassembly:
lea r12, [rsp - 0x80]
cmp r12, qword [r14 + 0x10]
jbe 0x5a6769
sub rsp, 0x100
mov qword [rsp + 0xf8], rbp
lea rbp, [rsp + 0xf8]
mov rdx, qword [rax + 0x48]
cmp byte [rdx + 0xc1], 0
jne 0x5a5dfc
cmp qword [rdx + 0xe8], 0
nop
je 0x5a5dfc
mov byte [rbx + 0xc8], 1
mov rdx, qword [rbx + 0x158]
cmp qword [rbx + 0x160], 0
nop dword [rax]
jbe 0x5a675e
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], rbx
cmp word [rdx], 0x304
jne 0x5a5cfc
lea rax, [0x00669260]
call fcn.0040da20
mov byte [rax], 1
mov rdi, qword [rsp + 0x110]
mov qword [rdi + 0x1b0], 1
mov qword [rdi + 0x1b8], 1
cmp dword [0x00918a90], 0
jne 0x5a5cdc
mov qword [rdi + 0x1a8], rax
jmp 0x5a5cf1
lea rdx, [rdi + 0x1a8]
mov rcx, rdi
mov rdi, rdx
call fcn.00465600
mov rdi, rcx
mov rax, qword [rsp + 0x108]
mov rbx, rdi
cmp qword [rax + 0x50], 0
jne 0x5a5dd4
mov rcx, qword [rax]
mov rdx, qword [rax + 8]
mov rcx, qword [rcx + 0x30]
mov rax, rdx
call rcx
mov rcx, qword [rsp + 0x108]
mov rdx, qword [rcx + 0x48]
mov rsi, qword [rdx + 0x88]
mov rdx, qword [rdx + 0x80]
test rsi, rsi
jne 0x5a5d4d
mov rcx, qword [rax + 0x20]
mov rax, rbx
call rcx
mov rcx, qword [rsp + 0x108]
mov rsi, rbx
mov rdx, rax
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0xa8], rdx
mov rdi, qword [rcx + 0x48]
mov r8, qword [rdi + 0xe8]
mov rax, qword [rdi + 0xf0]
mov rdi, qword [r8 + 0x18]
mov rbx, rdx
mov rcx, rsi
call rdi
test bl, bl
je 0x5a5da5
nop dword [rax]
test rax, rax
je 0x5a5da5
mov rdi, qword [rsp + 0x110]
mov r12, qword [rdi + 0x158]
mov r13, qword [rdi + 0x160]
xor ecx, ecx
nop dword [rax]
jmp 0x5a5e27
mov rax, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x58]
xor ecx, ecx
xor edi, edi
xor esi, esi
mov r8, rsi
mov r9, rdi
mov r10, rsi
mov r11, rsi
mov rbp, qword [rsp + 0xf8]
add rsp, 0x100
ret
xor eax, eax
xor ebx, ebx
xor ecx, ecx
mov rdi, rax
mov rsi, rbx
mov r8, rbx
mov r9, rax
mov r10, rbx
mov r11, rbx
mov rbp, qword [rsp + 0xf8]
add rsp, 0x100
ret
xor eax, eax
xor ebx, ebx
xor ecx, ecx
mov rdi, rax
mov rsi, rbx
mov r8, rbx
mov r9, rax
mov r10, rbx
mov r11, rbx
mov rbp, qword [rsp + 0xf8]
add rsp, 0x100
ret
inc rcx
cmp rcx, r13
jge 0x5a60c1
movzx r15d, word [r12 + rcx*2]
cmp word [rax + 0x18], r15w
jne 0x5a5e24
mov qword [rsp + 0xf0], rax
mov r12, qword [rsp + 0x108]
mov r13, qword [r12 + 0x48]
cmp byte [r13 + 0xa0], 0
jne 0x5a5f15
cmp qword [rax + 0x58], 0
je 0x5a6091
mov rbx, qword [rax + 0x38]
cmp qword [rax + 0x40], 0
jbe 0x5a6754
mov rcx, qword [rbx]
mov qword [rsp + 0xb8], rcx
mov rbx, qword [r13 + 0x10]
test rbx, rbx
jne 0x5a5e94
lea rbx, fcn.00486420
mov rax, qword [rbx]
mov rdx, rbx
call rax
mov rsi, qword [rsp + 0xb8]
mov rdi, qword [rsi + 0x2c8]
mov r8, qword [rsi + 0x2d0]
mov r9, qword [rsi + 0x2d8]
mov rsi, r8
mov r8, r9
nop
call fcn.00484fe0
test al, al
jne 0x5a6032
mov rdx, qword [rsp + 0x108]
mov rsi, qword [rdx + 0x48]
mov rbx, qword [rsi + 0x80]
mov rcx, qword [rsi + 0x88]
mov rax, qword [rsp + 0xb8]
call fcn.00585f80
test rax, rax
jne 0x5a6003
mov rax, qword [rsp + 0xf0]
mov rdi, qword [rsp + 0x110]
mov r12, qword [rsp + 0x108]
cmp word [rax + 0x18], 0x304
je 0x5a5f31
mov rdx, qword [rdi + 0x50]
mov r12, qword [rdi + 0x58]
movzx r13d, word [rax + 0x1a]
xor ecx, ecx
jmp 0x5a6668
mov rcx, qword [r12 + 0x48]
mov rcx, qword [rcx + 0x10]
test rcx, rcx
jne 0x5a5f46
lea rcx, fcn.00486420
mov rax, qword [rcx]
mov rdx, rcx
call rax
mov rsi, qword [rsp + 0xf0]
mov rdi, qword [rsi + 0xd0]
mov r8, qword [rsi + 0xd8]
mov r9, qword [rsi + 0xc8]
mov rdx, rdi
mov rdi, r9
mov rsi, rdx
call fcn.00484fe0
test al, al
jne 0x5a5fa5
mov r12, qword [rsp + 0xf0]
movzx r13d, word [r12 + 0x1a]
mov r15, qword [0x008b6de0]
mov rax, r12
mov r12, qword [0x008b6de8]
xor ecx, ecx
nop
jmp 0x5a60f6
mov rdx, qword [rsp + 0x108]
mov rdx, qword [rdx + 0x48]
mov rsi, qword [rdx + 0xe8]
mov rax, qword [rdx + 0xf0]
mov rdx, qword [rsi + 0x20]
mov rbx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x58]
xor edi, edi
call rdx
mov rax, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x58]
xor ecx, ecx
xor edi, edi
xor esi, esi
mov r8, rsi
mov r9, rdi
mov r10, rsi
mov r11, rsi
mov rbp, qword [rsp + 0xf8]
add rsp, 0x100
ret
mov rax, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x58]
xor ecx, ecx
xor edi, edi
xor esi, esi
mov r8, rsi
mov r9, rdi
mov r10, rsi
mov r11, rsi
mov rbp, qword [rsp + 0xf8]
add rsp, 0x100
ret
mov rdx, qword [rsp + 0x108]
mov rdx, qword [rdx + 0x48]
mov rsi, qword [rdx + 0xe8]
mov rax, qword [rdx + 0xf0]
mov rdx, qword [rsi + 0x20]
mov rbx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x58]
xor edi, edi
nop
call rdx
mov rax, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x58]
xor ecx, ecx
xor edi, edi
xor esi, esi
mov r8, rsi
mov r9, rdi
mov r10, rsi
mov r11, rsi
mov rbp, qword [rsp + 0xf8]
add rsp, 0x100
ret
mov rax, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x58]
xor ecx, ecx
xor edi, edi
xor esi, esi
mov r8, rsi
mov r9, rdi
mov r10, rsi
mov r11, rsi
mov rbp, qword [rsp + 0xf8]
add rsp, 0x100
nop
ret
mov rax, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x58]
xor ecx, ecx
xor edi, edi
xor esi, esi
mov r8, rsi
mov r9, rdi
mov r10, rsi
mov r11, rsi
mov rbp, qword [rsp + 0xf8]
add rsp, 0x100
ret
inc rcx
mov r15, rdx
cmp rcx, r12
jge 0x5a610a
mov rdx, r15
mov r15, qword [r15 + rcx*8]
cmp word [r15], r13w
jne 0x5a60f0
jmp 0x5a6110
mov rdx, r15
xor r15d, r15d
test r15, r15
je 0x5a612f
mov r13, qword [rsp + 0x110]
mov rcx, r15
mov r15, qword [r13 + 0x50]
mov rbx, r13
mov r13, qword [r13 + 0x58]
xor esi, esi
jmp 0x5a6167
mov rax, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x58]
xor ecx, ecx
xor edi, edi
xor esi, esi
mov r8, rsi
mov r9, rdi
mov r10, rsi
mov r11, rsi
mov rbp, qword [rsp + 0xf8]
add rsp, 0x100
ret
inc rsi
mov r13, r9
mov r15, rdi
cmp rsi, r13
jge 0x5a6191
mov rdi, r15
movzx r15d, word [r15 + rsi*2]
xor r8d, r8d
jmp 0x5a61c7
mov r9, r13
xor r13d, r13d
nop
test r13, r13
je 0x5a615e
mov r13, qword [r13 + 0x18]
cmp qword [rcx + 0x18], r13
jne 0x5a615e
jmp 0x5a61dc
mov rax, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x58]
xor ecx, ecx
xor edi, edi
xor esi, esi
mov r8, rsi
mov r9, rdi
mov r10, rsi
mov r11, rsi
mov rbp, qword [rsp + 0xf8]
add rsp, 0x100
nop
ret
inc r8
mov r13, r9
cmp r8, r12
jge 0x5a6179
mov r9, r13
mov r13, qword [rdx + r8*8]
cmp word [r13], r15w
jne 0x5a61c1
jmp 0x5a6180
mov qword [rsp + 0xe8], rcx
mov rsi, qword [rsp + 0x108]
mov rsi, qword [rsi + 0x48]
mov rsi, qword [rsi + 0x10]
test rsi, rsi
jne 0x5a6200
lea rsi, fcn.00486420
mov rax, qword [rsi]
mov rdx, rsi
call rax
mov rsi, qword [rsp + 0xf0]
mov rdi, qword [rsi + 0x70]
mov r8, qword [rsi + 0x78]
mov r9, qword [rsi + 0x68]
mov rdx, rdi
mov rdi, r9
mov rsi, rdx
call fcn.00485cc0
mov rcx, rax
movabs rax, 0x431bde82d7b634db
imul rcx
sar rdx, 0x12
sar rcx, 0x3f
sub rdx, rcx
mov rax, qword [rsp + 0xf0]
mov rcx, qword [rax]
mov qword [rsp + 0xc0], rcx
mov rbx, qword [rax + 8]
mov qword [rsp + 0x68], rbx
mov rsi, qword [rax + 0x10]
mov qword [rsp + 0x70], rsi
add edx, dword [rax + 0xe0]
mov dword [rsp + 0x54], edx
lea rax, [0x00668de0]
nop dword [rax + rax]
call fcn.0040da20
mov rcx, qword [rsp + 0x68]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0x70]
mov qword [rax + 0x10], rcx
mov ecx, dword [rsp + 0x54]
mov dword [rax + 0x18], ecx
cmp dword [0x00918a90], 0
jne 0x5a62b4
mov rdx, qword [rsp + 0xc0]
mov qword [rax], rdx
jmp 0x5a62c5
mov rdi, rax
mov rdx, qword [rsp + 0xc0]
nop
call fcn.00465720
mov rdi, qword [rsp + 0x110]
mov qword [rdi + 0x1c8], 1
mov qword [rdi + 0x1d0], 1
cmp dword [0x00918a90], 0
jne 0x5a62f5
mov qword [rdi + 0x1c0], rax
jmp 0x5a630a
lea rdx, [rdi + 0x1c0]
mov rcx, rdi
mov rdi, rdx
call fcn.00465600
mov rdi, rcx
mov rdx, qword [rsp + 0xe8]
mov rax, qword [rdx + 0x18]
lea rsi, [rax - 1]
nop word [rax + rax]
cmp rsi, 0x13
jae 0x5a6652
mov rcx, qword [0x008b6ce8]
mov rsi, qword [0x008b6ce0]
nop dword [rax + rax]
cmp rcx, rax
jbe 0x5a664d
movzx ecx, byte [rsi + rax]
mov qword [rsp + 0xa0], rcx
lea rax, [0x00667c00]
mov rbx, rcx
nop
call fcn.0044a620
mov qword [rsp + 0xe0], rax
lea rax, [0x00668c60]
call fcn.0040da20
mov rdx, qword [rsp + 0xa0]
mov qword [rax + 8], rdx
mov qword [rax + 0x10], rdx
cmp dword [0x00918a90], 0
jne 0x5a639f
mov rdx, qword [rsp + 0xe0]
mov qword [rax], rdx
jmp 0x5a63af
mov rdi, rax
mov rdx, qword [rsp + 0xe0]
call fcn.00465720
mov rdi, qword [rsp + 0x110]
mov qword [rdi + 0x1e0], 1
mov qword [rdi + 0x1e8], 1
cmp dword [0x00918a90], 0
jne 0x5a63df
mov qword [rdi + 0x1d8], rax
jmp 0x5a63f4
lea rdx, [rdi + 0x1d8]
mov rcx, rdi
mov rdi, rdx
call fcn.00465600
mov rdi, rcx
mov rax, qword [rsp + 0xe8]
mov rdx, qword [rax + 0x18]
lea r12, [rdx - 1]
cmp r12, 0x13
jae 0x5a663a
mov rcx, qword [0x008b6ce8]
mov r12, qword [0x008b6ce0]
nop dword [rax]
cmp rcx, rdx
jbe 0x5a6632
mov r13, qword [rsp + 0xf0]
mov rbx, qword [r13 + 0x20]
mov rcx, qword [r13 + 0x28]
mov rdi, qword [r13 + 0x30]
mov r9, qword [r13 + 0xb0]
mov r10, qword [r13 + 0xb8]
mov r11, qword [r13 + 0xc0]
movzx edx, byte [r12 + rdx]
mov qword [rsp], rdx
lea rsi, [0x006ba049]
mov r8d, 0xa
call fcn.005c3880
mov rdi, rcx
xor esi, esi
xor r8d, r8d
mov r9, r8
mov rcx, rbx
mov rbx, rax
mov rax, qword [rsp + 0xe8]
call fcn.005c44a0
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0x98], rcx
mov rdi, rcx
lea rsi, [0x006ba035]
mov r8d, 0xa
xor r9d, r9d
xor r10d, r10d
mov rcx, rbx
mov rbx, rax
mov rax, qword [rsp + 0xe8]
call fcn.005c4340
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x88], rcx
mov rdx, qword [rsp + 0xe8]
mov r12, qword [rdx + 0x18]
mov rax, r12
call fcn.004a8be0
mov qword [rsp + 0x60], rax
mov qword [rsp + 0xb0], rbx
mov rax, qword [rsp + 0x110]
call fcn.005b3e40
mov rdx, qword [rsp + 0x60]
mov r12, qword [rdx + 0x38]
mov rdi, rcx
mov rcx, rbx
mov rbx, rax
mov rax, qword [rsp + 0xb0]
call r12
mov rax, qword [rsp + 0xe8]
mov rbx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x60]
mov r8, qword [rsp + 0xb0]
nop dword [rax]
call fcn.005c4800
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x78], rcx
lea rax, [0x00668c60]
call fcn.0040da20
mov rdx, qword [rsp + 0x80]
mov qword [rax + 8], rdx
mov rdx, qword [rsp + 0x78]
mov qword [rax + 0x10], rdx
cmp dword [0x00918a90], 0
jne 0x5a65b1
mov rdx, qword [rsp + 0xc8]
mov qword [rax], rdx
jmp 0x5a65c5
mov rdi, rax
mov rdx, qword [rsp + 0xc8]
nop dword [rax]
call fcn.00465720
mov rbx, rax
mov ecx, 1
mov rdi, rcx
mov rax, qword [rsp + 0x110]
call fcn.005b3ee0
mov rax, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0xf0]
mov rdi, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xa0]
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0xd0]
mov r10, qword [rsp + 0x90]
mov r11, qword [rsp + 0x88]
mov rbp, qword [rsp + 0xf8]
add rsp, 0x100
ret
mov rax, rdx
call fcn.00465ac0
lea rax, [0x00667a40]
lea rbx, [0x0072dab0]
call fcn.00436260
call fcn.00465ac0
lea rax, [0x00667a40]
lea rbx, [0x0072dab0]
call fcn.00436260
inc rcx
cmp rcx, r12
jge 0x5a668e
movzx r15d, word [rdx + rcx*2]
cmp r15w, r13w
jne 0x5a6665
nop
mov rdx, qword [0x008b6d80]
mov r12, qword [0x008b6d88]
xor ecx, ecx
jmp 0x5a6730
xor ecx, ecx
test rcx, rcx
je 0x5a66fe
mov rdx, qword [rax]
mov r12, qword [rax + 8]
mov r13, qword [rax + 0x10]
mov qword [rdi + 0xd8], r12
mov qword [rdi + 0xe0], r13
cmp dword [0x00918a90], 0
jne 0x5a66c2
mov qword [rdi + 0xd0], rdx
nop
jmp 0x5a66ce
add rdi, 0xd0
call fcn.00465720
mov rbx, qword [rsp + 0x58]
mov rcx, rax
xor edi, edi
xor esi, esi
mov r8, rsi
mov r9, rdi
mov r10, rsi
mov r11, rsi
mov rax, qword [rsp + 0xa8]
mov rbp, qword [rsp + 0xf8]
add rsp, 0x100
ret
mov rax, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x58]
xor ecx, ecx
xor edi, edi
xor esi, esi
mov r8, rsi
mov r9, rdi
mov r10, rsi
mov r11, rsi
mov rbp, qword [rsp + 0xf8]
add rsp, 0x100
ret
inc rcx
cmp rcx, r12
jge 0x5a6749
mov r13, qword [rdx + rcx*8]
nop dword [rax]
cmp word [r13], r15w
jne 0x5a672d
jmp 0x5a674c
xor r13d, r13d
mov rcx, r13
jmp 0x5a6690
xor eax, eax
mov rcx, rax
call fcn.00465aa0
xor eax, eax
mov rcx, rax
call fcn.00465aa0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00463440
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.005a5c20