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

Disassembly:
lea r12, [rsp - 0x190]
cmp r12, qword [r14 + 0x10]
jbe 0x61134f
push rbp
mov rbp, rsp
sub rsp, 0x208
mov qword [rsp + 0x220], rbx
mov qword [rsp + 0x160], rbx
mov qword [rsp + 0x228], rcx
mov byte [rsp + 0x230], dil
mov qword [rsp + 0x218], rax
lea rax, [0x0065c6e0]
xor ebx, ebx
call fcn.004055c0
mov qword [rsp + 0x158], rax
nop dword [rax + rax]
call fcn.0040e100
mov qword [rsp + 0x150], rax
call fcn.0040e100
mov qword [rsp + 0x148], rax
mov ebx, 1
lea rax, [0x0065c6e0]
call fcn.004055c0
mov qword [rsp + 0x140], rax
lea rax, [0x006ad5c0]
call fcn.0040d680
cmp dword [0x00921500], 0
jne 0x6106d2
mov rcx, qword [rsp + 0x218]
jmp 0x6106e2
call fcn.004665a0
mov rcx, qword [rsp + 0x218]
mov qword [r11], rcx
mov qword [rax], rcx
mov rdx, qword [rsp + 0x160]
mov qword [rax + 8], rdx
cmp dword [0x00921500], 0
jne 0x61070c
mov rbx, qword [rsp + 0x228]
mov rsi, qword [rsp + 0x158]
jmp 0x610728
call fcn.004665c0
mov rbx, qword [rsp + 0x228]
mov qword [r11], rbx
mov rsi, qword [rsp + 0x158]
mov qword [r11 + 8], rsi
mov qword [rax + 0x10], rbx
mov qword [rax + 0x30], rsi
mov dword [rax + 0xb0], 1
mov dword [rax + 0x100], 0x4000
mov dword [rax + 0x114], 0xffff
mov dword [rax + 0x104], 0x64
mov qword [rax + 0x108], 0xffffffffffffffff
cmp dword [0x00921500], 0
jne 0x610776
mov rsi, qword [rsp + 0x150]
jmp 0x610786
call fcn.004665a0
mov rsi, qword [rsp + 0x150]
mov qword [r11], rsi
mov qword [rax + 0xa0], rsi
movzx esi, byte [rsp + 0x230]
mov byte [rax + 0x2c], sil
mov byte [rax + 0x84], 1
cmp dword [0x00921500], 0
jne 0x6107c0
mov rsi, qword [rsp + 0x148]
mov rdi, qword [rsp + 0x140]
jmp 0x6107dc
call fcn.004665c0
mov rsi, qword [rsp + 0x148]
mov qword [r11], rsi
mov rdi, qword [rsp + 0x140]
mov qword [r11 + 8], rdi
mov qword [rax + 0xc0], rsi
mov qword [rax + 0x118], rdi
mov rsi, qword [rcx + 0x60]
test rsi, rsi
je 0x6107fc
mov rsi, qword [rsi + 0xd0]
jmp 0x6107fe
xor esi, esi
mov qword [rsp + 0x118], rax
test rsi, rsi
je 0x6108b7
mov qword [rsp + 0xc8], rsi
mov qword [rax + 0x48], rsi
lea rax, [0x00677f80]
call fcn.0040d680
lea rcx, [0x0063de60]
mov qword [rax], rcx
cmp dword [0x00921500], 0
jne 0x610844
mov rcx, qword [rsp + 0x118]
jmp 0x610854
call fcn.004665a0
mov rcx, qword [rsp + 0x118]
mov qword [r11], rcx
mov qword [rax + 8], rcx
mov rbx, rax
mov rax, qword [rsp + 0xc8]
call fcn.004cd260
cmp dword [0x00921500], 0
jne 0x610880
mov rcx, qword [rsp + 0x118]
jmp 0x610898
call fcn.004665c0
mov qword [r11], rax
mov rcx, qword [rsp + 0x118]
mov rdx, qword [rcx + 0x50]
mov qword [r11 + 8], rdx
mov qword [rcx + 0x50], rax
mov rax, rcx
mov rcx, qword [rsp + 0x218]
mov rdx, qword [rsp + 0x160]
mov rbx, qword [rsp + 0x228]
cmp byte [0x009210c3], 0
nop
je 0x610953
mov rcx, qword [rdx + 0x30]
mov rax, rbx
call rcx
movups xmmword [rsp + 0x190], xmm15
movups xmmword [rsp + 0x1a0], xmm15
lea rcx, [0x006a8a00]
mov qword [rsp + 0x190], rcx
mov rcx, qword [rsp + 0x118]
mov qword [rsp + 0x198], rcx
test rax, rax
je 0x610909
mov rax, qword [rax + 8]
mov qword [rsp + 0x1a0], rax
mov qword [rsp + 0x1a8], rbx
cmp byte [0x009210c3], 0
je 0x610953
mov rax, qword [rsp + 0x218]
lea rbx, [0x006c0c1e]
mov ecx, 0x2e
lea rdi, [rsp + 0x190]
mov esi, 2
mov r8, rsi
call fcn.0061cde0
mov rcx, qword [rsp + 0x118]
lea rax, [0x0068ec20]
call fcn.0040d680
lea rcx, [0x00729ce8]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x118]
lea rdx, [rcx + 0x58]
cmp dword [0x00921500], 0
je 0x610994
nop
call fcn.004665e0
mov qword [r11], rdx
mov qword [r11 + 8], rax
mov rsi, qword [rcx + 0x60]
mov qword [r11 + 0x10], rsi
mov qword [rax + 8], rdx
mov qword [rcx + 0x60], rax
mov edx, dword [rcx + 0x68]
lea esi, [rdx + 0xffff]
nop
cmp esi, 0xffff
setg dil
test edx, edx
setg dl
cmp dl, dil
jne 0x6109bd
mov dword [rcx + 0x68], esi
movups xmmword [rsp + 0x170], xmm15
movups xmmword [rsp + 0x180], xmm15
mov rdx, qword [rsp + 0x160]
mov qword [rsp + 0x170], rdx
mov rsi, qword [rsp + 0x228]
mov qword [rsp + 0x178], rsi
mov rdi, qword [rsp + 0x218]
mov r8, qword [rdi + 0x50]
mov qword [rsp + 0x180], r8
lea r8, [rcx + 0x138]
mov qword [rsp + 0x188], r8
lea rax, [0x0068e0e0]
lea rbx, [rsp + 0x170]
call fcn.0040abe0
mov qword [rsp + 0x138], rax
nop
mov ebx, 0x1000
mov rcx, rbx
lea rax, [0x0065bae0]
nop
call fcn.0044b7a0
mov qword [rsp + 0x130], rax
lea rax, [0x006911a0]
call fcn.0040d680
mov qword [rax + 0x18], 0x1000
mov qword [rax + 0x20], 0x1000
cmp dword [0x00921500], 0
jne 0x610a80
mov rcx, qword [rsp + 0x130]
jmp 0x610a90
call fcn.004665a0
mov rcx, qword [rsp + 0x130]
mov qword [r11], rcx
mov qword [rax + 0x10], rcx
lea rcx, [0x00728e80]
mov qword [rax + 0x30], rcx
cmp dword [0x00921500], 0
jne 0x610aba
mov rcx, qword [rsp + 0x138]
mov rdx, qword [rsp + 0x118]
jmp 0x610ae1
call fcn.004665e0
mov rcx, qword [rsp + 0x138]
mov qword [r11], rcx
mov qword [r11 + 8], rax
mov rdx, qword [rsp + 0x118]
mov rsi, qword [rdx + 0x128]
mov qword [r11 + 0x10], rsi
mov qword [rax + 0x38], rcx
mov qword [rdx + 0x128], rax
lea rax, [0x0066d680]
mov rbx, qword [rsp + 0x160]
nop dword [rax + rax]
call fcn.0040afa0
lea rcx, [0x007288c0]
cmp rax, rcx
jne 0x610b1b
mov rdx, qword [rsp + 0x228]
jmp 0x610b20
mov edx, 0
mov qword [rsp + 0x128], rax
jne 0x610b45
cmp qword [rdx + 8], 0x1000
jl 0x610b45
mov rcx, qword [rsp + 0x228]
mov rax, rdx
nop
jmp 0x610c53
lea rax, [0x0069a780]
call fcn.0040d680
mov qword [rsp + 0xf8], rax
mov ebx, 0x1000
mov rcx, rbx
lea rax, [0x0065bae0]
call fcn.0044b7a0
movups xmmword [rsp + 0x1b0], xmm15
lea rdi, [rsp + 0x1b8]
lea rdi, [rdi - 0x30]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00466c90
mov rbp, qword [rbp]
mov qword [rsp + 0x1b0], rax
mov qword [rsp + 0x1b8], 0x1000
mov qword [rsp + 0x1c0], 0x1000
mov rcx, qword [rsp + 0x128]
mov qword [rsp + 0x1c8], rcx
mov rcx, qword [rsp + 0x228]
mov qword [rsp + 0x1d0], rcx
mov qword [rsp + 0x1f8], 0xffffffffffffffff
mov qword [rsp + 0x200], 0xffffffffffffffff
cmp dword [0x00921500], 0
je 0x610c1a
lea rax, [0x0069a780]
mov rbx, qword [rsp + 0xf8]
lea rcx, [rsp + 0x1b0]
call fcn.00413880
mov rcx, qword [rsp + 0x228]
mov rbx, qword [rsp + 0x1b0]
mov rdi, qword [rsp + 0xf8]
mov qword [rdi], rbx
lea rbx, [rdi + 8]
lea rsi, [rsp + 0x1b8]
mov rax, rdi
mov rdi, rbx
nop
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00466ffa
mov rbp, qword [rbp]
cmp dword [0x00921500], 0
jne 0x610c66
mov rdx, qword [rsp + 0x118]
jmp 0x610c81
call fcn.004665c0
mov qword [r11], rax
mov rdx, qword [rsp + 0x118]
mov rbx, qword [rdx + 0xc8]
mov qword [r11 + 8], rbx
mov qword [rsp + 0xf8], rax
mov qword [rdx + 0xc8], rax
mov rcx, qword [rdx + 0x128]
mov qword [rsp + 0x120], rcx
lea rax, [0x006a8220]
call fcn.0040d680
lea rcx, [0x00728bc0]
mov qword [rax + 0x78], rcx
cmp dword [0x00921500], 0
jne 0x610cc9
mov rcx, qword [rsp + 0x120]
jmp 0x610cd9
call fcn.004665a0
mov rcx, qword [rsp + 0x120]
mov qword [r11], rcx
mov qword [rax + 0x80], rcx
lea rcx, [0x007288c0]
mov qword [rax], rcx
cmp dword [0x00921500], 0
jne 0x610d00
mov rcx, qword [rsp + 0xf8]
jmp 0x610d10
call fcn.004665a0
mov rcx, qword [rsp + 0xf8]
mov qword [r11], rcx
mov qword [rsp + 0x108], rax
mov qword [rax + 8], rcx
lea rcx, [0x006e10f8]
mov qword [rax + 0x30], rcx
movzx ecx, byte [0x009210c5]
mov byte [rax + 0xb4], cl
movzx ecx, byte [0x009210c4]
mov byte [rax + 0xb5], cl
lea rcx, [0x006e10d0]
mov qword [rax + 0xc8], rcx
mov qword [rax + 0xd0], rcx
lea rax, [0x00678880]
nop dword [rax]
call fcn.0040d680
lea rcx, [0x00611400]
mov qword [rax], rcx
cmp dword [0x00921500], 0
jne 0x610d82
mov rcx, qword [rsp + 0x108]
jmp 0x610d9e
call fcn.004665e0
mov rcx, qword [rsp + 0x108]
mov qword [r11], rcx
mov qword [r11 + 8], rax
mov rdx, qword [rcx + 0x50]
mov qword [r11 + 0x10], rdx
mov qword [rax + 8], rcx
mov qword [rcx + 0x50], rax
nop
mov dword [rcx + 0x3c], 0xffffff
cmp dword [0x00921500], 0
jne 0x610dc2
mov rdx, qword [rsp + 0x118]
nop
jmp 0x610ddd
call fcn.004665c0
mov qword [r11], rcx
mov rdx, qword [rsp + 0x118]
mov rsi, qword [rdx + 0x130]
mov qword [r11 + 8], rsi
mov qword [rdx + 0x130], rcx
mov rsi, qword [rsp + 0x218]
mov edi, dword [rsi + 0x30]
test edi, edi
jne 0x610df7
xor eax, eax
jmp 0x610e17
cmp edi, 0x4000
jae 0x610e06
mov eax, 0x4000
jmp 0x610e17
cmp edi, 0xffffff
jbe 0x610e15
mov eax, 0xffffff
jmp 0x610e17
mov eax, edi
test eax, eax
je 0x610e52
test edi, edi
jne 0x610e23
xor edi, edi
jmp 0x610e3f
cmp edi, 0x4000
jae 0x610e32
mov edi, 0x4000
jmp 0x610e3f
cmp edi, 0xffffff
jbe 0x610e3f
mov edi, 0xffffff
cmp edi, 0xffffff
mov r8d, 0xffffff
cmova edi, r8d
mov dword [rcx + 0x3c], edi
mov rcx, qword [rsi + 0x58]
test rcx, rcx
je 0x610e81
mov rdi, qword [rdx + 0x130]
test byte [rdi], al
cmp dword [0x00921500], 0
je 0x610e7d
call fcn.004665c0
mov qword [r11], rcx
mov r8, qword [rdi + 0x30]
mov qword [r11 + 8], r8
mov qword [rdi + 0x30], rcx
mov ecx, dword [rsi + 0x34]
test ecx, ecx
mov eax, 0x1000
cmova eax, ecx
mov dword [rsp + 0xc4], eax
xor ebx, ebx
call fcn.005f9d20
mov rbx, qword [rsp + 0x118]
mov rcx, qword [rbx + 0x130]
test byte [rcx], al
cmp dword [0x00921500], 0
je 0x610ec9
call fcn.004665c0
mov qword [r11], rax
mov rdx, qword [rcx + 0xa8]
mov qword [r11 + 8], rdx
mov qword [rcx + 0xa8], rax
mov rcx, qword [rsp + 0x218]
mov edx, dword [rcx + 0x2c]
test edx, edx
jne 0x610ee6
mov edx, 0xa00000
jmp 0x610eed
cmp edx, 0xffffffff
jne 0x610eed
xor edx, edx
mov rcx, qword [rbx + 0x130]
mov dword [rcx + 0xb0], edx
lea rcx, [rbx + 0x148]
lea rax, [0x00728680]
mov rbx, rcx
call fcn.005f8920
cmp dword [0x00921500], 0
jne 0x610f23
mov rdx, qword [rsp + 0x118]
jmp 0x610f3e
call fcn.004665c0
mov qword [r11], rax
mov rdx, qword [rsp + 0x118]
mov rsi, qword [rdx + 0x170]
mov qword [r11 + 8], rsi
mov qword [rdx + 0x170], rax
mov rsi, qword [rsp + 0x218]
mov edi, dword [rsi + 0x38]
test edi, edi
mov r8d, 0x1000
cmova r8d, edi
mov dword [rax + 0x44], r8d
cmp dword [rax + 0x34], r8d
jbe 0x610f84
mov byte [rax + 0x48], 1
nop
mov dword [rax + 0x34], r8d
call fcn.005fa120
mov rdx, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x218]
mov dword [rdx + 0x110], 0x1000
cmp byte [rsi + 0x29], 0
je 0x610f9e
mov dword [rdx + 0xb0], 3
lea rax, [0x00670500]
mov rbx, qword [rsp + 0x160]
mov rcx, qword [rsp + 0x228]
call fcn.0040b0a0
test rax, rax
jne 0x610fcc
mov r8, qword [rsp + 0x118]
jmp 0x611070
mov qword [rsp + 0x110], rbx
mov qword [rsp + 0xe0], rax
lea rax, [0x006a1f40]
call fcn.0040d680
mov qword [rsp + 0x168], rax
mov rcx, qword [rsp + 0xe0]
mov rcx, qword [rcx + 0x18]
mov rax, qword [rsp + 0x110]
call rcx
cmp dword [0x00921500], 0
je 0x61103e
call fcn.004665c0
mov rbx, qword [rsp + 0x168]
mov qword [r11], rbx
mov rdx, qword [rsp + 0x118]
mov rsi, qword [rdx + 0x20]
mov qword [r11 + 8], rsi
lea rax, [0x006a1f40]
mov rcx, rsp
call fcn.00413880
mov rdi, qword [rsp + 0x168]
mov rsi, rsp
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00466fa6
mov rbp, qword [rbp]
mov rdx, qword [rsp + 0x168]
mov r8, qword [rsp + 0x118]
mov qword [r8 + 0x20], rdx
movups xmmword [rsp + 0xe8], xmm15
mov word [rsp + 0xe8], 2
mov word [rsp + 0xf0], 4
mov dword [rsp + 0xf4], 0x400000
mov rdx, qword [rsp + 0x218]
mov r9d, dword [rdx + 0x30]
test r9d, r9d
jne 0x6110ae
xor r9d, r9d
jmp 0x6110cf
cmp r9d, 0x4000
jae 0x6110c0
mov r9d, 0x4000
jmp 0x6110cf
cmp r9d, 0xffffff
jbe 0x6110cf
mov r9d, 0xffffff
test r9d, r9d
jne 0x6110e8
mov ecx, 2
lea rax, [rsp + 0xe8]
mov ebx, 2
jmp 0x611138
mov dword [rsp + 0xc0], r9d
lea rax, [rsp + 0xe8]
mov ebx, 3
mov ecx, 2
mov edi, 1
lea rsi, [0x00689760]
call fcn.0044b880
mov word [rax + 0x10], 5
mov edx, dword [rsp + 0xc0]
mov dword [rax + 0x14], edx
mov rdx, qword [rsp + 0x218]
mov r8, qword [rsp + 0x118]
mov ebx, 3
mov edx, dword [rdx + 0x2c]
test edx, edx
jne 0x611146
mov edx, 0xa00000
jmp 0x61114d
cmp edx, 0xffffffff
jne 0x61114d
xor edx, edx
test edx, edx
je 0x611192
inc rbx
cmp rcx, rbx
jae 0x611180
mov dword [rsp + 0xbc], edx
mov edi, 1
lea rsi, [0x00689760]
call fcn.0044b880
mov edx, dword [rsp + 0xbc]
mov r8, qword [rsp + 0x118]
lea r9, [rax + rbx*8]
lea r9, [r9 - 8]
mov word [r9], 6
mov dword [rax + rbx*8 - 4], edx
mov edx, dword [rsp + 0xc4]
nop dword [rax]
cmp edx, 0x1000
je 0x6111e5
inc rbx
cmp rcx, rbx
jae 0x6111d4
mov edi, 1
lea rsi, [0x00689760]
nop dword [rax]
call fcn.0044b880
mov edx, dword [rsp + 0xc4]
mov r8, qword [rsp + 0x118]
lea rsi, [rax + rbx*8]
lea rsi, [rsi - 8]
mov word [rsi], 1
mov dword [rax + rbx*8 - 4], edx
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xd0], rbx
mov qword [rsp + 0x100], rax
mov rdx, qword [r8 + 0x128]
mov rsi, qword [str.PRI__HTTP_2.0_r_n_r_nSM_r_n_r_n]
mov r9, qword [0x008bf508]
mov rdi, qword [0x008bf510]
mov rax, rdx
mov rbx, rsi
mov rcx, r9
call fcn.004effe0
mov rdx, qword [rsp + 0x118]
mov rax, qword [rdx + 0x130]
mov rbx, qword [rsp + 0x100]
mov rcx, qword [rsp + 0xd0]
mov rdi, qword [rsp + 0xd8]
call fcn.00609100
mov rdx, qword [rsp + 0x118]
mov rax, qword [rdx + 0x130]
xor ebx, ebx
mov ecx, 0x40000000
call fcn.00609de0
nop
mov rdx, qword [rsp + 0x118]
mov dword [rdx + 0x78], 0x4000ffff
mov rax, qword [rdx + 0x128]
call fcn.004efe40
mov rdx, qword [rsp + 0x118]
cmp qword [rdx + 0x138], 0
jne 0x6112f3
lea rax, [0x00678580]
call fcn.0040d680
lea rcx, [0x006113a0]
mov qword [rax], rcx
cmp dword [0x00921500], 0
jne 0x6112c5
mov rcx, qword [rsp + 0x118]
jmp 0x6112d5
call fcn.004665a0
mov rcx, qword [rsp + 0x118]
mov qword [r11], rcx
mov qword [rax + 8], rcx
call fcn.00442380
mov rax, qword [rsp + 0x118]
xor ebx, ebx
xor ecx, ecx
add rsp, 0x208
pop rbp
ret
nop
nop
lea rax, [0x00673e00]
nop dword [rax]
call fcn.0040d680
mov qword [rax + 8], 0x3a
lea rcx, [0x006c33b5]
mov qword [rax], rcx
lea rbx, [0x00728640]
mov rcx, rax
mov rax, qword [rsp + 0x118]
call fcn.006121a0
mov rcx, qword [rsp + 0x118]
mov rbx, qword [rcx + 0x138]
mov rcx, qword [rcx + 0x140]
xor eax, eax
add rsp, 0x208
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov byte [rsp + 0x20], dil
call fcn.004646a0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
movzx edi, byte [rsp + 0x20]
nop dword [rax]
jmp fcn.00610620