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

Disassembly:
lea r12, [rsp - 0x150]
cmp r12, qword [r14 + 0x10]
jbe 0x614fc5
sub rsp, 0x1d0
mov qword [rsp + 0x1c8], rbp
lea rbp, [rsp + 0x1c8]
mov byte [rsp + 0x1f0], dil
mov qword [rsp + 0x200], r8
mov qword [rsp + 0x1e8], rcx
mov qword [rsp + 0x1e0], rbx
mov qword [rsp + 0x1f8], rsi
mov qword [rsp + 0x1d8], rax
movups xmmword [rsp + 0x140], xmm15
nop
mov rdx, qword [rax + 0xe8]
mov r9, qword [rax + 0xf0]
test rdx, rdx
jne 0x6141e5
nop
mov r9, qword [0x0089c338]
lea rdx, [0x0071b0c8]
nop
mov rdx, qword [rdx + 0x30]
mov rax, r9
lea rbx, [0x00665420]
lea rcx, [0x008f2a98]
call rdx
lea rdx, [0x00668020]
cmp rax, rdx
je 0x61420b
xor ebx, ebx
mov qword [rsp + 0x118], rbx
test rbx, rbx
je 0x6142b0
cmp qword [rbx + 0x78], 0
je 0x6142b0
movups xmmword [rsp + 0x170], xmm15
mov qword [rsp + 0x180], 0
lea rcx, [0x006150c0]
mov qword [rsp + 0x170], rcx
mov qword [rsp + 0x178], rbx
lea rcx, [rsp + 0x140]
mov qword [rsp + 0x180], rcx
lea rcx, [rsp + 0x170]
mov qword [rsp + 0xd0], rcx
lea rax, [rsp + 0xb8]
nop dword [rax + rax]
call fcn.004352a0
test eax, eax
jne 0x61428b
jmp 0x6142b0
call fcn.004358c0
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
mov byte [rsp + 0x4f], 0
movups xmmword [rsp + 0x1a8], xmm15
movups xmmword [rsp + 0x1b8], xmm15
lea rcx, [0x00615020]
mov qword [rsp + 0x1a8], rcx
lea rcx, [rsp + 0x4f]
mov qword [rsp + 0x1b0], rcx
mov rcx, qword [rsp + 0x1d8]
mov qword [rsp + 0x1b8], rcx
lea rdx, [rsp + 0x140]
mov qword [rsp + 0x1c0], rdx
lea rdx, [rsp + 0x1a8]
mov qword [rsp + 0x88], rdx
lea rax, [rsp + 0x70]
call fcn.004352a0
nop dword [rax]
test eax, eax
jne 0x6143e5
mov rcx, qword [rsp + 0x1d8]
mov rdx, qword [rcx + 0x88]
mov rsi, qword [rcx + 0x80]
nop
test rdx, rdx
jne 0x61439b
mov rdx, qword [rcx + 0x10]
test rdx, rdx
je 0x614358
mov rsi, qword [rdx + 0x28]
mov rdx, qword [rdx + 0x30]
jmp 0x61439b
mov rax, qword [0x0089d790]
mov rcx, qword [0x0089d798]
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rcx
call fcn.004358c0
mov rbx, qword [rsp + 0x148]
mov rax, qword [rsp + 0x140]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
mov rax, rsi
mov rbx, rdx
call fcn.005ecba0
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x148], rdi
test rcx, rcx
jne 0x6143bf
xor ecx, ecx
jmp 0x61440d
nop
call fcn.004358c0
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
call fcn.004358c0
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
inc rcx
cmp rbx, rcx
jle 0x61447f
movzx edx, byte [rax + rcx]
lea rsi, [0x008687a0]
movzx edx, byte [rdx + rsi]
test dl, dl
jne 0x61440a
lea rax, [0x0066df60]
call fcn.0040d960
mov qword [rax + 8], 0x19
lea rcx, [0x006abdb3]
mov qword [rax], rcx
lea rcx, [0x007191c0]
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x148], rax
call fcn.004358c0
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
nop
call fcn.00615180
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x68], rbx
mov rcx, qword [rsp + 0x1d8]
mov rdx, qword [rcx + 0x10]
mov rax, rdx
call fcn.00576320
movzx ecx, byte [rsp + 0x1f0]
test cl, cl
je 0x61450d
mov rdx, qword [rsp + 0x1d8]
mov r12, qword [rdx + 0x10]
mov rcx, qword [r12 + 8]
mov r13, qword [r12]
test rcx, rcx
je 0x614515
cmp qword [r12 + 0x18], 0
jne 0x614515
lea rdi, [0x006a4343]
mov esi, 3
mov r8, qword [rsp + 0x128]
mov r9, qword [rsp + 0x68]
mov r10, rax
mov r11, rbx
xor eax, eax
mov rbx, r13
call fcn.0044e8e0
mov rdx, qword [rsp + 0x1d8]
mov rdi, rbx
mov rsi, rax
jmp 0x614584
mov rdx, qword [rsp + 0x1d8]
mov rsi, qword [rdx]
cmp qword [rdx + 8], 7
jne 0x61457e
cmp dword [rsi], 0x4e4e4f43
jne 0x614576
cmp word [rsi + 4], 0x4345
jne 0x61456e
cmp byte [rsi + 6], 0x54
jne 0x614566
mov rsi, qword [rdx + 0x10]
cmp qword [rsi + 0x40], 0
nop
jne 0x61455e
mov rdi, qword [rsi + 0x18]
mov rsi, qword [rsi + 0x10]
test rdi, rdi
jne 0x614584
mov rdi, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x128]
jmp 0x614584
mov rdi, rbx
mov rsi, rax
jmp 0x614584
mov rdi, rbx
mov rsi, rax
jmp 0x614584
mov rdi, rbx
mov rsi, rax
jmp 0x614584
mov rdi, rbx
mov rsi, rax
jmp 0x614584
mov rdi, rbx
mov rsi, rax
xor eax, eax
jmp 0x61458b
inc rax
cmp rax, rdi
jge 0x614605
movzx r8d, byte [rax + rsi]
cmp r8b, 0x20
jb 0x6145a6
nop dword [rax + rax]
cmp r8b, 0x7f
jne 0x614588
lea rax, [0x0066df60]
call fcn.0040d960
mov qword [rax + 8], 0x36
lea rcx, [0x006b5f71]
mov qword [rax], rcx
lea rcx, [0x007191c0]
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x148], rax
nop dword [rax + rax]
call fcn.004358c0
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x120], rsi
lea rax, [0x0066a4c0]
mov rbx, qword [rsp + 0x1e0]
mov rcx, qword [rsp + 0x1e8]
call fcn.0040b260
test rax, rax
je 0x61464a
mov rcx, qword [rsp + 0x1e0]
mov rax, qword [rsp + 0x1e8]
xor edx, edx
jmp 0x614724
nop
nop
mov rdx, qword [rsp + 0x1e0]
lea rsi, [0x00719060]
nop dword [rax + rax]
cmp rdx, rsi
jne 0x61466f
mov rax, qword [rsp + 0x1e8]
jmp 0x614674
mov eax, 0
jne 0x614686
cmp qword [rax + 0x18], 0x1000
nop
jge 0x61471a
lea rax, [0x006578a0]
mov ebx, 0x1000
mov rcx, rbx
call fcn.0044a840
mov qword [rsp + 0x138], rax
lea rax, [0x00685120]
call fcn.0040d960
mov qword [rax + 0x18], 0x1000
mov qword [rax + 0x20], 0x1000
cmp dword [0x008f2cf0], 0
jne 0x6146d5
mov rcx, qword [rsp + 0x138]
mov qword [rax + 0x10], rcx
jmp 0x6146e6
lea rdi, [rax + 0x10]
mov rcx, qword [rsp + 0x138]
call fcn.004655a0
mov rcx, qword [rsp + 0x1e0]
mov qword [rax + 0x30], rcx
cmp dword [0x008f2cf0], 0
jne 0x614709
mov rcx, qword [rsp + 0x1e8]
mov qword [rax + 0x38], rcx
jmp 0x61471a
lea rdi, [rax + 0x38]
mov rcx, qword [rsp + 0x1e8]
call fcn.004655a0
lea rcx, [0x00719060]
mov rdx, rax
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x130], rdx
mov rsi, qword [rsp + 0x1d8]
mov rdi, qword [rsi + 8]
mov r8, qword [rsi]
test rdi, rdi
jne 0x614759
mov edi, 3
lea r8, [0x006a438b]
movups xmmword [rsp + 0x188], xmm15
movups xmmword [rsp + 0x198], xmm15
mov rax, r8
mov rbx, rdi
call fcn.0040afc0
lea rcx, [0x006576e0]
mov qword [rsp + 0x188], rcx
mov qword [rsp + 0x190], rax
mov rax, qword [rsp + 0x120]
mov rbx, qword [rsp + 0x60]
call fcn.0040afc0
lea rcx, [0x006576e0]
mov qword [rsp + 0x198], rcx
mov qword [rsp + 0x1a0], rax
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x100]
mov edi, 0x10
lea rsi, [rsp + 0x188]
mov r8d, 2
mov r9, r8
lea rcx, [0x006a790c]
call fcn.004f83e0
mov qword [rsp + 0x140], rbx
mov qword [rsp + 0x148], rcx
test rbx, rbx
jne 0x614fa0
movups xmmword [rsp + 0x160], xmm15
mov rax, qword [rsp + 0x128]
mov rbx, qword [rsp + 0x68]
call fcn.0040afc0
lea rcx, [0x006576e0]
mov qword [rsp + 0x160], rcx
mov qword [rsp + 0x168], rax
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x100]
mov edi, 0xa
lea rsi, [rsp + 0x160]
mov r8d, 1
mov r9, r8
lea rcx, [0x006a5a2c]
call fcn.004f83e0
mov qword [rsp + 0x140], rbx
mov qword [rsp + 0x148], rcx
test rbx, rbx
jne 0x614f79
mov rdx, qword [rsp + 0x118]
test rdx, rdx
je 0x6148f0
cmp qword [rdx + 0x60], 0
je 0x6148f0
lea rax, [0x00658b60]
call fcn.0040d960
mov rcx, qword [rsp + 0x68]
mov qword [rax + 8], rcx
cmp dword [0x008f2cf0], 0
jne 0x6148b7
mov r8, qword [rsp + 0x128]
mov qword [rax], r8
jmp 0x6148c7
mov rdi, rax
mov r8, qword [rsp + 0x128]
call fcn.00465620
mov r8, qword [rsp + 0x118]
mov rdx, qword [r8 + 0x60]
mov r9, qword [rdx]
mov ebx, 4
mov rcx, rax
mov edi, 1
mov rsi, rdi
lea rax, [0x006a4564]
call r9
mov rdx, qword [rsp + 0x1d8]
mov rbx, qword [rdx + 0x38]
lea rax, [0x00693760]
lea rcx, [0x006a5b26]
mov edi, 0xa
call fcn.00412dc0
test bl, bl
jne 0x614926
mov ebx, 0x12
lea rax, [0x006a86c0]
jmp 0x614945
mov rdx, qword [rsp + 0x1d8]
mov rax, qword [rdx + 0x38]
lea rbx, [0x006a5b26]
mov ecx, 0xa
nop
call fcn.005d2ce0
test rbx, rbx
je 0x614a4b
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x108], rax
movups xmmword [rsp + 0x160], xmm15
call fcn.0040afc0
lea rcx, [0x006576e0]
mov qword [rsp + 0x160], rcx
mov qword [rsp + 0x168], rax
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x100]
lea rcx, [0x006a7bfc]
mov edi, 0x10
lea rsi, [rsp + 0x160]
mov r8d, 1
mov r9, r8
call fcn.004f83e0
mov qword [rsp + 0x140], rbx
mov qword [rsp + 0x148], rcx
nop
test rbx, rbx
jne 0x614f54
mov rcx, qword [rsp + 0x118]
test rcx, rcx
je 0x614a4b
cmp qword [rcx + 0x60], 0
je 0x614a4b
lea rax, [0x00658b60]
call fcn.0040d960
mov rcx, qword [rsp + 0x58]
mov qword [rax + 8], rcx
cmp dword [0x008f2cf0], 0
jne 0x614a08
mov r8, qword [rsp + 0x108]
mov qword [rax], r8
jmp 0x614a18
mov rdi, rax
mov r8, qword [rsp + 0x108]
call fcn.00465620
mov r8, qword [rsp + 0x118]
mov rdx, qword [r8 + 0x60]
mov r9, qword [rdx]
mov ebx, 0xa
mov rcx, rax
mov edi, 1
mov rsi, rdi
lea rax, [0x006a5b26]
nop
call r9
mov rcx, qword [rsp + 0x118]
lea rax, [0x0069ab00]
mov rbx, qword [rsp + 0x1d8]
call fcn.00619fe0
mov qword [rsp + 0x140], rbx
mov qword [rsp + 0x148], rcx
test rbx, rbx
jne 0x614f2f
mov qword [rsp + 0x110], rax
mov rbx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x100]
mov rdi, qword [rsp + 0x118]
call fcn.0061b080
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rbx
test rax, rax
jne 0x614f0a
mov rdx, qword [rsp + 0x1d8]
mov rax, qword [rdx + 0x38]
mov rdi, qword [0x0089c840]
mov rbx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x100]
mov rsi, qword [rsp + 0x118]
nop dword [rax + rax]
call fcn.00613360
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rbx
test rax, rax
jne 0x614ee5
mov rax, qword [rsp + 0x1f8]
test rax, rax
je 0x614b49
mov rbx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x100]
xor edi, edi
mov rsi, qword [rsp + 0x118]
call fcn.00613360
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rbx
nop word [rax + rax]
test rax, rax
jne 0x614ec0
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x100]
lea rcx, [0x006a4282]
mov edi, 2
call fcn.0046fe60
mov qword [rsp + 0x140], rbx
mov qword [rsp + 0x148], rcx
nop word [rax + rax]
test rbx, rbx
jne 0x614e9a
mov rsi, qword [rsp + 0x118]
test rsi, rsi
je 0x614bac
mov rdx, qword [rsi + 0x68]
test rdx, rdx
je 0x614bac
mov rax, qword [rdx]
call rax
mov rsi, qword [rsp + 0x118]
mov rdx, qword [rsp + 0x200]
test rdx, rdx
je 0x614cc5
mov rcx, qword [rsp + 0x50]
lea rbx, [0x00719060]
cmp rcx, rbx
jne 0x614bd8
mov rax, qword [rsp + 0x100]
jmp 0x614bdd
mov eax, 0
je 0x614be4
test rsi, rsi
jmp 0x614c2b
call fcn.005d1fc0
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rbx
nop dword [rax]
test rax, rax
jne 0x614ca0
mov rax, qword [rsp + 0x118]
test rax, rax
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x200]
lea rbx, [0x00719060]
mov rsi, rax
je 0x614c46
mov rax, qword [rsi + 0x70]
test rax, rax
je 0x614c46
mov rcx, qword [rax]
mov rdx, rax
call rcx
mov rdx, qword [rsp + 0x200]
mov rax, qword [rdx]
call rax
test al, al
jne 0x614cc5
mov byte [rsp + 0x4f], 1
nop
mov rcx, qword [rsp + 0x1d8]
mov rdx, qword [rcx + 0x40]
mov rax, qword [rcx + 0x48]
test rdx, rdx
je 0x614c70
mov rcx, qword [rdx + 0x18]
call rcx
movups xmmword [rsp + 0x140], xmm15
call fcn.004358c0
mov rbx, qword [rsp + 0x148]
mov rax, qword [rsp + 0x140]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
call fcn.004358c0
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
mov rbx, qword [rsp + 0x50]
lea rdx, [0x00719060]
cmp rbx, rdx
jne 0x614ce2
mov rax, qword [rsp + 0x100]
nop
jmp 0x614ce7
mov eax, 0
jne 0x614d49
mov rdx, qword [rsp + 0x110]
cmp byte [rdx + 0x88], 0
je 0x614d51
call fcn.005d1fc0
nop
test rax, rax
jne 0x614d14
mov rdx, qword [rsp + 0x110]
mov rbx, qword [rsp + 0x50]
jmp 0x614d51
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rbx
call fcn.004358c0
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
mov rdx, qword [rsp + 0x110]
mov byte [rsp + 0x4f], 1
mov rax, rdx
mov rcx, qword [rsp + 0x100]
call fcn.0061b820
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rbx
test rax, rax
je 0x614e25
mov rdx, qword [rsp + 0x110]
mov rsi, qword [rdx + 0x78]
mov rdx, qword [rdx + 0x80]
cmp rax, rsi
jne 0x614e00
mov rax, rsi
mov rcx, rbx
mov rbx, rdx
call fcn.00403fe0
test al, al
je 0x614e00
movups xmmword [rsp + 0x150], xmm15
mov rcx, qword [rsp + 0x140]
mov rdx, qword [rsp + 0x148]
mov qword [rsp + 0x150], rcx
mov qword [rsp + 0x158], rdx
lea rax, [0x006731c0]
lea rbx, [rsp + 0x150]
call fcn.0040ad40
lea rcx, [0x00719c80]
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x148], rax
nop dword [rax]
call fcn.004358c0
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
mov rax, qword [rsp + 0x130]
test rax, rax
je 0x614e6c
call fcn.005d1fc0
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rbx
call fcn.004358c0
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
movups xmmword [rsp + 0x140], xmm15
call fcn.004358c0
mov rbx, qword [rsp + 0x148]
mov rax, qword [rsp + 0x140]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
call fcn.004358c0
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
call fcn.004358c0
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
call fcn.004358c0
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
call fcn.004358c0
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
call fcn.004358c0
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
call fcn.004358c0
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
call fcn.004358c0
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
call fcn.004358c0
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov byte [rsp + 0x20], dil
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r8
call fcn.004632e0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
movzx edi, byte [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
jmp fcn.00614160