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

Disassembly:
lea r12, [rsp - 0xc0]
cmp r12, qword [r14 + 0x10]
jbe 0x5a531d
sub rsp, 0x140
mov qword [rsp + 0x138], rbp
lea rbp, [rsp + 0x138]
mov rcx, qword [rax + 0x48]
cmp qword [rcx + 0x88], 0
jne 0x5a457e
cmp byte [rcx + 0xa0], 0
nop
jne 0x5a457e
lea rax, [0x0067fd60]
call fcn.0040da20
mov qword [rax + 8], 0x50
lea rcx, [0x006cd1b5]
mov qword [rax], rcx
xor ebx, ebx
lea rcx, [0x0072e7e0]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0x138]
add rsp, 0x140
ret
mov rdx, qword [rcx + 0x68]
mov rsi, qword [rcx + 0x70]
xor ebx, ebx
xor edi, edi
jmp 0x5a45a0
add r8, 0x10
inc rbx
lea r9, [rdi + 1]
lea rdi, [rdx + r9]
mov rdx, r8
nop
cmp rbx, rsi
jge 0x5a4600
mov r8, rdx
mov rdx, qword [rdx + 8]
test rdx, rdx
je 0x5a45ba
cmp rdx, 0xff
jle 0x5a458c
lea rax, [0x0067fd60]
call fcn.0040da20
mov qword [rax + 8], 0x1d
lea rcx, [0x006c249a]
mov qword [rax], rcx
xor ebx, ebx
lea rcx, [0x0072e7e0]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0x138]
add rsp, 0x140
ret
cmp rdi, 0xffff
jg 0x5a4b19
mov qword [rsp + 0x148], rax
mov qword [rsp + 0x100], rcx
mov rax, rcx
mov ebx, 1
call fcn.0059a9a0
test rbx, rbx
je 0x5a4add
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x80], rbx
mov rax, qword [rsp + 0x100]
mov ebx, 1
call fcn.0059a9a0
nop dword [rax]
test rbx, rbx
jne 0x5a4669
xor edx, edx
jmp 0x5a466c
movzx edx, word [rax]
mov word [rsp + 0x40], dx
lea rax, [0x00667c00]
mov ebx, 0x20
mov rcx, rbx
call fcn.0044a620
mov qword [rsp + 0x130], rax
mov ebx, 0x20
mov rcx, rbx
lea rax, [0x00667c00]
nop dword [rax]
call fcn.0044a620
mov qword [rsp + 0x128], rax
mov rdx, qword [rsp + 0x100]
mov rsi, qword [rdx + 0x80]
mov rbx, qword [rdx + 0x88]
mov rax, rsi
call fcn.005aa740
mov qword [rsp + 0x120], rax
mov qword [rsp + 0xa8], rbx
movzx edx, word [rsp + 0x40]
cmp dx, 0x303
mov esi, 0x303
cmova dx, si
mov word [rsp + 0x46], dx
mov rsi, qword [rsp + 0x100]
mov rdi, qword [rsi + 0x108]
mov r8, qword [rsi + 0x110]
mov r9, qword [rsi + 0x100]
test rdi, rdi
jne 0x5a472a
mov r9, qword [0x008b6e60]
mov rdi, qword [0x008b6e68]
mov r8, qword [0x008b6e70]
mov qword [rsp + 0xc0], r9
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x58], rdi
lea rax, [0x006b1800]
call fcn.0040da20
mov qword [rsp + 0xf8], rax
movzx ecx, word [rsp + 0x46]
mov word [rax + 0x18], cx
lea rax, [0x00669260]
call fcn.0040da20
mov rdi, qword [rsp + 0xf8]
mov qword [rdi + 0x70], 1
mov qword [rdi + 0x78], 1
cmp dword [0x00918a90], 0
jne 0x5a478c
mov qword [rdi + 0x68], rax
jmp 0x5a479e
lea rcx, [rdi + 0x68]
mov rdx, rdi
mov rdi, rcx
call fcn.00465600
mov rdi, rdx
mov qword [rdi + 0x28], 0x20
mov qword [rdi + 0x30], 0x20
cmp dword [0x00918a90], 0
jne 0x5a47c5
mov rcx, qword [rsp + 0x130]
mov qword [rdi + 0x20], rcx
jmp 0x5a47df
lea rcx, [rdi + 0x20]
mov rax, rdi
mov rdi, rcx
mov rdx, qword [rsp + 0x130]
call fcn.00465720
mov rdi, rax
mov qword [rdi + 0x40], 0x20
mov qword [rdi + 0x48], 0x20
cmp dword [0x00918a90], 0
jne 0x5a4806
mov rcx, qword [rsp + 0x128]
mov qword [rdi + 0x38], rcx
jmp 0x5a4820
lea rcx, [rdi + 0x38]
mov rax, rdi
mov rdi, rcx
mov rdx, qword [rsp + 0x128]
call fcn.00465720
mov rdi, rax
mov byte [rdi + 0x90], 1
mov byte [rdi + 0x150], 1
mov rcx, qword [rsp + 0xa8]
mov qword [rdi + 0x88], rcx
cmp dword [0x00918a90], 0
jne 0x5a4857
mov rcx, qword [rsp + 0x120]
mov qword [rdi + 0x80], rcx
jmp 0x5a4874
lea rcx, [rdi + 0x80]
mov rax, rdi
mov rdi, rcx
mov rdx, qword [rsp + 0x120]
call fcn.00465720
mov rdi, rax
mov rcx, qword [rsp + 0x58]
mov qword [rdi + 0xa0], rcx
mov rcx, qword [rsp + 0x68]
mov qword [rdi + 0xa8], rcx
cmp dword [0x00918a90], 0
jne 0x5a48a6
mov rcx, qword [rsp + 0xc0]
mov qword [rdi + 0x98], rcx
jmp 0x5a48bd
lea rcx, [rdi + 0x98]
mov rdi, rcx
mov rdx, qword [rsp + 0xc0]
call fcn.00465720
lea rax, [0x00669260]
call fcn.0040da20
mov rdi, qword [rsp + 0xf8]
mov qword [rdi + 0xb8], 1
mov qword [rdi + 0xc0], 1
cmp dword [0x00918a90], 0
jne 0x5a48f9
mov qword [rdi + 0xb0], rax
jmp 0x5a490e
lea rdx, [rdi + 0xb0]
mov rcx, rdi
mov rdi, rdx
call fcn.00465600
mov rdi, rcx
mov byte [rdi + 0x118], 1
mov rdx, qword [rsp + 0x100]
mov rsi, qword [rdx + 0x68]
mov r8, qword [rdx + 0x70]
mov r9, qword [rdx + 0x78]
mov qword [rdi + 0x140], r8
mov qword [rdi + 0x148], r9
cmp dword [0x00918a90], 0
nop
jne 0x5a494b
mov qword [rdi + 0x138], rsi
jmp 0x5a4960
lea r8, [rdi + 0x138]
mov rax, rdi
mov rdi, r8
call fcn.00465760
mov rdi, rax
mov rsi, qword [rsp + 0x80]
mov qword [rdi + 0x160], rsi
mov rsi, qword [rsp + 0x88]
mov qword [rdi + 0x168], rsi
cmp dword [0x00918a90], 0
jne 0x5a4998
mov rsi, qword [rsp + 0xd8]
mov qword [rdi + 0x158], rsi
jmp 0x5a49b5
lea rsi, [rdi + 0x158]
mov rax, rdi
mov rdi, rsi
mov r8, qword [rsp + 0xd8]
call fcn.00465780
mov rdi, rax
mov rsi, qword [rsp + 0x148]
cmp qword [rsi + 0x50], 0
jle 0x5a4a08
mov qword [rdi + 0x128], 0xc
mov qword [rdi + 0x130], 0xc
add rsi, 0x141
cmp dword [0x00918a90], 0
jne 0x5a49f3
mov qword [rdi + 0x120], rsi
jmp 0x5a4a08
lea r8, [rdi + 0x120]
mov rax, rdi
mov rdi, r8
call fcn.00465760
mov rdi, rax
mov rsi, qword [0x008b6da0]
mov r8, qword [0x008b6da8]
cmp byte [0x009185e5], 0
jne 0x5a4a2d
mov rsi, qword [0x008b6dc0]
mov r8, qword [0x008b6dc8]
mov qword [rsp + 0x90], r8
mov qword [rsp + 0xe0], rsi
mov r9, qword [rdx + 0xa8]
mov r10, qword [rdx + 0xb0]
test r9, r9
jne 0x5a4a5e
mov r9, qword [0x008c3b50]
mov r10, qword [0x008c3b58]
mov qword [rsp + 0x50], r10
mov qword [rsp + 0xb8], r9
lea rax, [0x00667b40]
xor ebx, ebx
mov rcx, r10
call fcn.0044a620
mov rdi, qword [rsp + 0xf8]
mov qword [rdi + 0x58], 0
mov rdx, qword [rsp + 0x50]
mov qword [rdi + 0x60], rdx
lea rsi, [rdi + 0x50]
cmp dword [0x00918a90], 0
jne 0x5a4aa8
mov qword [rdi + 0x50], rax
jmp 0x5a4ab6
mov rcx, rdi
mov rdi, rsi
call fcn.00465600
mov rdi, rcx
mov qword [rsp + 0x118], rsi
mov r9, qword [rsp + 0x90]
mov r10, qword [rsp + 0xe0]
mov r11, qword [rsp + 0xb8]
xor eax, eax
jmp 0x5a4b60
lea rax, [0x0067fd60]
call fcn.0040da20
mov qword [rax + 8], 0x3c
lea rcx, [0x006cb99d]
mov qword [rax], rcx
xor ebx, ebx
lea rcx, [0x0072e7e0]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0x138]
add rsp, 0x140
ret
lea rax, [0x0067fd60]
call fcn.0040da20
mov qword [rax + 8], 0x20
lea rcx, [0x006c391b]
mov qword [rax], rcx
xor ebx, ebx
lea rcx, [0x0072e7e0]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0x138]
add rsp, 0x140
ret
inc rax
nop dword [rax + rax]
cmp rax, r9
jge 0x5a4c65
movzx r12d, word [r10 + rax*2]
xor ecx, ecx
jmp 0x5a52d2
nop
mov r15, qword [0x008b6d80]
mov rcx, r11
mov r11, qword [0x008b6d88]
xor ebx, ebx
jmp 0x5a52f1
xor ecx, ecx
test rcx, rcx
je 0x5a4b55
cmp word [rdi + 0x18], 0x303
jae 0x5a4ba8
mov r13, qword [rcx + 0x28]
bt r13d, 2
jb 0x5a4b55
mov rbx, qword [rdi + 0x58]
inc rbx
mov r13, qword [rdi + 0x50]
mov rcx, qword [rdi + 0x60]
nop word [rax + rax]
cmp rcx, rbx
jae 0x5a4c56
mov qword [rsp + 0xa8], rax
mov word [rsp + 0x42], r12w
mov rax, r13
mov edi, 1
lea rsi, [0x00667b40]
call fcn.0044a700
mov rdx, qword [rsp + 0xf8]
mov qword [rdx + 0x60], rcx
cmp dword [0x00918a90], 0
nop
jne 0x5a4c10
mov qword [rdx + 0x50], rax
mov rdi, qword [rsp + 0x118]
jmp 0x5a4c1d
mov rdi, qword [rsp + 0x118]
call fcn.00465600
mov rdx, qword [rsp + 0x50]
mov rsi, rdi
mov rdi, qword [rsp + 0xf8]
mov r9, qword [rsp + 0x90]
mov r10, qword [rsp + 0xe0]
mov r11, qword [rsp + 0xb8]
movzx r12d, word [rsp + 0x42]
mov r13, rax
mov rax, qword [rsp + 0xa8]
mov qword [rdi + 0x58], rbx
mov word [r13 + rbx*2 - 2], r12w
jmp 0x5a4b55
mov rdx, qword [rsp + 0x100]
mov r9, qword [rdx]
mov r10, qword [rdx + 8]
test r9, r9
jne 0x5a4c87
mov r9, qword [0x008c37c0]
mov r10, qword [0x008c37c8]
mov r8, qword [rdi + 0x28]
mov rcx, qword [rdi + 0x20]
mov rsi, qword [rdi + 0x30]
mov rax, r9
mov rbx, r10
mov rdi, r8
nop dword [rax]
call fcn.00490340
test rbx, rbx
jne 0x5a5232
mov rdx, qword [rsp + 0x100]
mov r9, qword [rdx]
mov r10, qword [rdx + 8]
nop dword [rax]
test r9, r9
jne 0x5a4cd3
mov r9, qword [0x008c37c0]
mov r10, qword [0x008c37c8]
mov rdx, qword [rsp + 0xf8]
mov r8, qword [rdx + 0x40]
mov rcx, qword [rdx + 0x38]
mov rsi, qword [rdx + 0x48]
mov rax, r9
mov rbx, r10
mov rdi, r8
call fcn.00490340
test rbx, rbx
jne 0x5a51a6
mov rax, qword [rsp + 0xf8]
cmp word [rax + 0x18], 0x303
jb 0x5a4d4f
mov rdx, qword [0x008b6e80]
mov r8, qword [0x008b6e88]
mov r9, qword [0x008b6e90]
mov qword [rax + 0xf0], r8
mov qword [rax + 0xf8], r9
cmp dword [0x00918a90], 0
jne 0x5a4d43
mov qword [rax + 0xe8], rdx
jmp 0x5a4d4f
lea rdi, [rax + 0xe8]
call fcn.00465720
mov rdx, qword [0x008c3b70]
mov r8, qword [0x008c3b78]
mov r9, qword [0x008c3b80]
test rdx, rdx
je 0x5a4d97
mov qword [rax + 0xf0], r8
mov qword [rax + 0xf8], r9
cmp dword [0x00918a90], 0
nop
jne 0x5a4d8b
mov qword [rax + 0xe8], rdx
jmp 0x5a4d97
lea rdi, [rax + 0xe8]
call fcn.00465720
mov rdx, qword [rax + 0x158]
cmp qword [rax + 0x160], 0
jbe 0x5a52c5
cmp word [rdx], 0x304
jne 0x5a518d
cmp byte [0x009185e5], 0
nop
je 0x5a4e9f
mov rdi, qword [0x008b6e28]
mov rdx, qword [rax + 0x58]
lea rbx, [rdi + rdx]
mov rcx, qword [rax + 0x60]
mov rdx, qword [rax + 0x50]
nop dword [rax]
cmp rcx, rbx
jb 0x5a4dea
mov rsi, rbx
jmp 0x5a4e10
mov qword [rsp + 0xa0], rbx
mov rax, rdx
lea rsi, [0x00667b40]
nop dword [rax]
call fcn.0044a700
mov rsi, qword [rsp + 0xa0]
mov rdx, rax
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0x110], rdx
mov qword [rsp + 0xa0], rcx
mov rdi, qword [0x008b6e28]
sub rsi, rdi
lea rax, [rdx + rsi*2]
mov rsi, qword [0x008b6e20]
shl rdi, 1
mov rbx, rsi
mov rcx, rdi
call fcn.00466460
mov rdx, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xf8]
mov qword [rsi + 0x58], rdx
mov rdx, qword [rsp + 0xa0]
mov qword [rsi + 0x60], rdx
cmp dword [0x00918a90], 0
jne 0x5a4e85
mov rdx, qword [rsp + 0x110]
mov qword [rsi + 0x50], rdx
jmp 0x5a4f6b
mov rdi, qword [rsp + 0x118]
mov rdx, qword [rsp + 0x110]
call fcn.00465720
jmp 0x5a4f6b
mov rdi, qword [0x008b6e48]
mov rdx, qword [rax + 0x58]
lea rbx, [rdi + rdx]
mov rcx, qword [rax + 0x60]
mov rdx, qword [rax + 0x50]
cmp rcx, rbx
jb 0x5a4ec2
mov rsi, rbx
nop
jmp 0x5a4ee4
mov qword [rsp + 0xa0], rbx
mov rax, rdx
lea rsi, [0x00667b40]
call fcn.0044a700
mov rsi, qword [rsp + 0xa0]
mov rdx, rax
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0x110], rdx
mov rdi, qword [0x008b6e48]
sub rsi, rdi
mov r8, qword [0x008b6e40]
lea rax, [rdx + rsi*2]
shl rdi, 1
mov rbx, r8
mov rcx, rdi
call fcn.00466460
mov rdx, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xf8]
mov qword [rsi + 0x58], rdx
mov rdx, qword [rsp + 0xa8]
mov qword [rsi + 0x60], rdx
cmp dword [0x00918a90], 0
jne 0x5a4f56
mov rdx, qword [rsp + 0x110]
mov qword [rsi + 0x50], rdx
jmp 0x5a4f6b
mov rdi, qword [rsp + 0x118]
mov rdx, qword [rsp + 0x110]
call fcn.00465720
mov rdx, qword [rsp + 0x100]
mov rdi, qword [rdx + 0x108]
mov r8, qword [rdx + 0x100]
test rdi, rdi
jne 0x5a4f94
mov r8, qword [0x008b6e60]
mov rdi, qword [0x008b6e68]
test rdi, rdi
jbe 0x5a52ba
movzx ecx, word [r8]
nop
cmp cx, 0x18
ja 0x5a4fb9
cmp cx, 0x17
je 0x5a4fca
cmp cx, 0x18
je 0x5a4fca
jmp 0x5a5151
cmp cx, 0x19
je 0x5a4fca
nop
cmp cx, 0x1d
jne 0x5a5151
mov rdi, qword [rdx]
mov rdx, qword [rdx + 8]
test rdi, rdi
jne 0x5a4fe4
mov rdi, qword [0x008c37c0]
mov rdx, qword [0x008c37c8]
mov word [rsp + 0x44], cx
mov rax, rdi
mov rbx, rdx
call fcn.005c4c80
test rbx, rbx
jne 0x5a5137
mov qword [rsp + 0xe8], rax
call fcn.004ed0e0
mov qword [rsp + 0xf0], rax
lea rax, [0x00668480]
call fcn.0040da20
mov rcx, qword [rsp + 0xf0]
mov rdi, qword [rcx + 0x18]
mov rbx, qword [rcx + 0x10]
cmp rdi, 0x85
ja 0x5a5042
mov rcx, rdi
mov edx, 0x85
nop
jmp 0x5a507c
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0x108], rbx
mov rbx, rdi
mov ecx, 0x85
lea rsi, [0x00667c00]
call fcn.0044a700
mov rdi, rbx
mov rdx, rcx
mov rcx, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x108]
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x60], rdx
call fcn.00466460
lea rax, [0x00668d80]
call fcn.0040da20
movzx edx, word [rsp + 0x44]
mov word [rax], dx
mov rdx, qword [rsp + 0x48]
mov qword [rax + 0x10], rdx
mov rdx, qword [rsp + 0x60]
mov qword [rax + 0x18], rdx
cmp dword [0x00918a90], 0
jne 0x5a50d0
mov rdx, qword [rsp + 0xb0]
mov qword [rax + 8], rdx
jmp 0x5a50e5
lea rdi, [rax + 8]
mov rdx, qword [rsp + 0xb0]
nop dword [rax]
call fcn.00465720
mov rdi, qword [rsp + 0xf8]
mov qword [rdi + 0x190], 1
mov qword [rdi + 0x198], 1
cmp dword [0x00918a90], 0
jne 0x5a5115
mov qword [rdi + 0x188], rax
jmp 0x5a512a
lea rdx, [rdi + 0x188]
mov rcx, rdi
mov rdi, rdx
call fcn.00465600
mov rdi, rcx
mov rax, rdi
mov rcx, qword [rsp + 0xe8]
jmp 0x5a518f
xor eax, eax
mov rdi, rcx
mov rcx, rbx
xor ebx, ebx
mov rbp, qword [rsp + 0x138]
add rsp, 0x140
ret
lea rax, [0x0067fd60]
call fcn.0040da20
mov qword [rax + 8], 0x30
lea rcx, [0x006c9666]
mov qword [rax], rcx
xor ebx, ebx
lea rcx, [0x0072e7e0]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0x138]
add rsp, 0x140
ret
xor ecx, ecx
mov rbx, rcx
xor ecx, ecx
xor edi, edi
mov rbp, qword [rsp + 0x138]
add rsp, 0x140
ret
mov rdx, qword [rbx + 0x18]
mov rax, rcx
call rdx
mov ecx, 0x1b
mov rdi, rax
mov rsi, rbx
xor eax, eax
lea rbx, [0x006c1483]
call fcn.0044e540
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0x70], rbx
lea rax, [0x0067fd60]
nop dword [rax]
call fcn.0040da20
mov rcx, qword [rsp + 0x70]
mov qword [rax + 8], rcx
cmp dword [0x00918a90], 0
jne 0x5a5204
mov rdx, qword [rsp + 0xc8]
mov qword [rax], rdx
jmp 0x5a5214
mov rdi, rax
mov rdx, qword [rsp + 0xc8]
call fcn.00465720
xor ebx, ebx
lea rcx, [0x0072e7e0]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0x138]
add rsp, 0x140
ret
mov rdx, qword [rbx + 0x18]
mov rax, rcx
call rdx
mov ecx, 0x1b
mov rdi, rax
mov rsi, rbx
xor eax, eax
lea rbx, [0x006c1483]
call fcn.0044e540
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0x78], rbx
lea rax, [0x0067fd60]
call fcn.0040da20
mov rcx, qword [rsp + 0x78]
mov qword [rax + 8], rcx
cmp dword [0x00918a90], 0
jne 0x5a528c
mov rdx, qword [rsp + 0xd0]
mov qword [rax], rdx
jmp 0x5a529c
mov rdi, rax
mov rdx, qword [rsp + 0xd0]
call fcn.00465720
xor ebx, ebx
lea rcx, [0x0072e7e0]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0x138]
add rsp, 0x140
ret
xor eax, eax
mov rcx, rax
nop
call fcn.00465aa0
xor eax, eax
mov rcx, rax
call fcn.00465aa0
inc rcx
cmp rcx, rdx
jge 0x5a4b8e
movzx r13d, word [r11 + rcx*2]
cmp r13w, r12w
jne 0x5a52cf
jmp 0x5a4b75
inc rbx
mov r12d, r8d
cmp rbx, r11
jge 0x5a5309
mov r8d, r12d
mov r12, qword [r15 + rbx*8]
nop dword [rax]
cmp word [r12], r13w
jne 0x5a52eb
jmp 0x5a530f
mov r8d, r12d
xor r12d, r12d
mov r11, rcx
mov rcx, r12
mov r12d, r8d
jmp 0x5a4b90
mov qword [rsp + 8], rax
call fcn.00463440
mov rax, qword [rsp + 8]
jmp fcn.005a4500