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

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x614bb1
sub rsp, 0x70
mov qword [rsp + 0x68], rbp
lea rbp, [rsp + 0x68]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], rcx
mov rdx, qword [rax]
mov qword [rsp + 0x58], rdx
cmp dword [rax + 0x28], 0
jne 0x61479f
mov rax, rdx
nop
call fcn.006129e0
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x80]
mov rsi, rax
xor eax, eax
mov r8d, 1
lock cmpxchg dword [rdx + 0x58], r8d
sete r9b
lea rax, [rdx + 0x58]
mov qword [rsp + 0x48], rax
nop dword [rax]
test r9b, r9b
jne 0x6147ef
call fcn.0047d500
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x78]
mov r8d, 1
cmp qword [rsi + 0x140], 0
je 0x614874
cmp qword [rsi + 0x158], 0
je 0x614807
xor edi, edi
jmp 0x614876
lea rax, [0x006b9600]
xor ebx, ebx
call fcn.00405660
cmp dword [0x00a04ed0], 0
jne 0x61482c
mov rbx, qword [rsp + 0x78]
mov qword [rbx + 0x158], rax
jmp 0x614848
mov rdi, qword [rsp + 0x78]
lea rdx, [rdi + 0x158]
mov rcx, rdi
mov rdi, rdx
nop
call fcn.00465a20
mov rbx, rcx
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x78]
mov r8d, 1
mov edi, 1
jmp 0x614876
xor edi, edi
mov r9, qword [rsi + 0x158]
mov qword [rsp + 0x60], r9
nop
mov r10d, 0xffffffff
lock xadd dword [rdx + 0x58], r10d
dec r10d
test r10d, r10d
je 0x6148cf
mov byte [rsp + 0x2b], dil
mov ebx, r10d
nop
call fcn.0047d800
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x78]
movzx edi, byte [rsp + 0x2b]
mov r8d, 1
mov r9, qword [rsp + 0x60]
test dil, dil
je 0x614917
mov rcx, qword [rsi + 0x140]
mov rax, qword [rsi + 0x148]
mov rcx, qword [rcx + 0x18]
call rcx
mov rax, qword [rsp + 0x60]
call fcn.00406160
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x78]
mov r8d, 1
mov r9, qword [rsp + 0x60]
test r9, r9
je 0x614946
mov rax, r9
xor ebx, ebx
call fcn.004065a0
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x78]
mov r8d, 1
test rbx, rbx
je 0x614992
cmp byte [rsi + 0x160], 0
je 0x614992
mov rbx, qword [rsi + 0xe0]
xor eax, eax
nop dword [rax]
call fcn.00406fa0
test al, al
je 0x61496f
xor eax, eax
xor ecx, ecx
jmp 0x61497f
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x78]
mov r8d, 1
mov rbx, rax
test rbx, rbx
jne 0x6149ea
cmp byte [rsi + 0x161], 0
nop
je 0x6149c1
cmp byte [rsi + 0x160], 0
jne 0x6149c1
mov ebx, dword [rsi + 0x28]
mov rax, rdx
xor ecx, ecx
xor edi, edi
xor esi, esi
call fcn.0061d060
mov rsi, qword [rsp + 0x78]
lea rax, [rsi + 0x30]
mov rcx, qword [0x009afa30]
mov rdi, qword [0x009afa38]
lea rbx, [rsi + 0x88]
xor esi, esi
nop dword [rax]
call fcn.0060db20
jmp 0x614ac9
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x30], rbx
mov rax, rsi
call fcn.0060eb80
mov rax, qword [rsp + 0x78]
cmp byte [rax + 0x161], 0
je 0x614aaa
mov rdi, qword [rsp + 0x30]
lea rdx, [0x007f25e0]
cmp rdi, rdx
jne 0x614a31
mov rsi, qword [rsp + 0x50]
mov edx, dword [rsi + 4]
mov r8, qword [rsi + 8]
mov r9, qword [rsi + 0x10]
jmp 0x614a47
mov rsi, qword [rsp + 0x50]
mov r8d, 0
mov edx, 0
mov r9d, 0
jne 0x614a90
mov rcx, qword [0x009af988]
cmp qword [0x009af980], r8
jne 0x614a7f
mov dword [rsp + 0x2c], edx
mov rax, r8
mov rbx, r9
call fcn.00403fe0
test al, al
jne 0x614aa5
mov rax, qword [rsp + 0x78]
mov edx, dword [rsp + 0x2c]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x30]
mov ebx, dword [rax + 0x28]
mov ecx, edx
mov rax, qword [rsp + 0x58]
call fcn.0061d060
jmp 0x614aa5
mov ebx, dword [rax + 0x28]
mov ecx, 8
mov rax, qword [rsp + 0x58]
nop dword [rax]
call fcn.0061d060
mov rax, qword [rsp + 0x78]
lea rdx, [rax + 0x30]
lea rbx, [rax + 0x88]
mov rcx, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x50]
xor esi, esi
mov rax, rdx
call fcn.0060db20
mov rcx, qword [rsp + 0x78]
mov ebx, dword [rcx + 0x28]
test ebx, ebx
je 0x614ae4
mov rax, qword [rsp + 0x58]
call fcn.00617a00
mov rcx, qword [rsp + 0x78]
xor eax, eax
mov rdx, qword [rsp + 0x58]
mov esi, 1
lock cmpxchg dword [rdx + 0x128], esi
sete sil
lea rax, [rdx + 0x128]
test sil, sil
jne 0x614b21
mov qword [rsp + 0x40], rax
call fcn.0047d500
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x58]
mov rsi, qword [rdx + 0x140]
test rsi, rsi
nop
mov ebx, 0xffffffff
lock xadd dword [rdx + 0x128], ebx
dec ebx
test ebx, ebx
jne 0x614b44
test rsi, rsi
jmp 0x614b60
mov qword [rsp + 0x38], rsi
call fcn.0047d800
mov rcx, qword [rsp + 0x38]
test rcx, rcx
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x58]
je 0x614b9b
nop
nop
lea rax, [0x006d8800]
call fcn.0040daa0
mov qword [rax + 8], 0x3a
lea rcx, [0x0072fb8e]
mov qword [rax], rcx
lea rbx, [0x007f1c00]
mov rcx, rax
mov rax, qword [rsp + 0x58]
call fcn.00612160
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx + 0xe8]
call fcn.00406160
mov rbp, qword [rsp + 0x68]
add rsp, 0x70
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
call fcn.00463860
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
jmp fcn.00614740