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

Disassembly:
lea r12, [rsp - 0x30]
cmp r12, qword [r14 + 0x10]
jbe 0x56d3bd
sub rsp, 0xb0
mov qword [rsp + 0xa8], rbp
lea rbp, [rsp + 0xa8]
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc8], rcx
xor edx, edx
xor esi, esi
xor edi, edi
jmp 0x56ca49
mov rdx, r8
cmp rbx, rdx
jle 0x56ce0a
jbe 0x56d3b1
mov qword [rsp + 0x58], rdx
mov byte [rsp + 0x45], dil
mov qword [rsp + 0x48], rsi
movzx r8d, byte [rax + rdx]
lea r9, [rax + rdx]
mov qword [rsp + 0x80], r9
nop dword [rax + rax]
cmp r8b, 0x25
jne 0x56ccb5
lea r8, [rdx + 2]
cmp rbx, r8
jle 0x56cd8e
lea r10, [rdx + 1]
nop dword [rax + rax]
cmp rbx, r10
jbe 0x56d3a6
movzx r10d, byte [rax + rdx + 1]
lea r11d, [r10 - 0x30]
cmp r11b, 9
ja 0x56cabe
cmp rbx, r8
jmp 0x56cae3
lea r12d, [r10 - 0x61]
cmp r12b, 5
ja 0x56cacd
cmp rbx, r8
jmp 0x56cae3
lea r12d, [r10 - 0x41]
cmp r12b, 5
ja 0x56cd8e
nop dword [rax + rax]
cmp rbx, r8
jbe 0x56d39b
movzx r8d, byte [rax + rdx + 2]
lea r12d, [r8 - 0x30]
cmp r12b, 9
jbe 0x56cb14
lea r13d, [r8 - 0x61]
nop dword [rax]
cmp r13b, 5
jbe 0x56cb14
lea r13d, [r8 - 0x41]
cmp r13b, 5
ja 0x56cd8e
cmp rcx, 3
jne 0x56cb9b
nop
cmp r11b, 9
ja 0x56cb2b
mov r13d, r11d
jmp 0x56cb63
lea r13d, [r10 - 0x61]
cmp r13b, 5
ja 0x56cb44
lea r13d, [r10 - 0x57]
mov r15d, r13d
mov r13d, r11d
mov r11d, r15d
jmp 0x56cb63
lea r13d, [r10 - 0x41]
cmp r13b, 5
ja 0x56cb5d
lea r13d, [r10 - 0x37]
mov r15d, r13d
mov r13d, r11d
mov r11d, r15d
jmp 0x56cb63
mov r13d, r11d
xor r11d, r11d
cmp r11b, 8
jae 0x56cba0
lea r11, [rdx + 3]
cmp rbx, r11
jb 0x56d390
cmp rdx, r11
ja 0x56d385
movzx r11d, word [rax + rdx]
cmp r11w, 0x3225
jne 0x56cd37
cmp r8b, 0x35
je 0x56cba0
jmp 0x56cd37
mov r13d, r11d
nop
cmp rcx, 4
jne 0x56cca9
cmp r13b, 9
ja 0x56cbb6
cmp r12b, 9
jmp 0x56cbf4
lea r11d, [r10 - 0x61]
nop word [rax + rax]
cmp r11b, 5
ja 0x56cbd3
lea r11d, [r10 - 0x57]
cmp r12b, 9
mov r13d, r11d
jmp 0x56cbf4
lea r11d, [r10 - 0x41]
cmp r11b, 5
ja 0x56cbea
lea r11d, [r10 - 0x37]
cmp r12b, 9
mov r13d, r11d
jmp 0x56cbf4
cmp r12b, 9
mov r13d, 0
jbe 0x56cc1f
lea r10d, [r8 - 0x61]
nop word [rax + rax]
cmp r10b, 5
ja 0x56cc0c
lea r12d, [r8 - 0x57]
jmp 0x56cc1f
lea r10d, [r8 - 0x41]
cmp r10b, 5
ja 0x56cc1c
lea r12d, [r8 - 0x37]
jmp 0x56cc1f
xor r12d, r12d
shl r13d, 4
or r12d, r13d
lea r10, [rdx + 3]
cmp rbx, r10
jb 0x56d378
cmp rdx, r10
ja 0x56d36d
movzx r10d, word [rax + rdx]
cmp r10w, 0x3225
jne 0x56cc4f
cmp r8b, 0x35
je 0x56cc9b
cmp r12b, 0x20
jne 0x56cc5a
xor r8d, r8d
jmp 0x56cca0
mov eax, r12d
mov ebx, 3
call fcn.0056c8a0
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0x48]
movzx edi, byte [rsp + 0x45]
mov r9, qword [rsp + 0x80]
mov r8d, eax
mov rax, qword [rsp + 0xb8]
jmp 0x56cca0
xor r8d, r8d
nop
test r8b, r8b
jne 0x56cd63
inc rsi
lea r8, [rdx + 3]
jmp 0x56ca46
cmp r8b, 0x2b
jne 0x56cccc
cmp rcx, 6
sete dil
lea r8, [rdx + 1]
jmp 0x56ca46
cmp rcx, 3
je 0x56ccd8
cmp rcx, 4
jne 0x56cd22
cmp r8b, 0x80
jb 0x56cce3
xor r8d, r8d
jmp 0x56cd25
mov eax, r8d
mov rbx, rcx
call fcn.0056c8a0
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0x48]
movzx edi, byte [rsp + 0x45]
mov r9, qword [rsp + 0x80]
mov r8d, eax
mov rax, qword [rsp + 0xb8]
jmp 0x56cd25
xor r8d, r8d
test r8b, r8b
jne 0x56cdd2
lea r8, [rdx + 1]
jmp 0x56ca46
mov rax, r9
mov ebx, 3
nop
call fcn.0040b080
xor ebx, ebx
lea rcx, [0x0072f380]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
mov rax, r9
mov ebx, 3
call fcn.0040b080
xor ebx, ebx
lea rcx, [0x0072f380]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
sub rbx, rdx
mov rcx, rbx
neg rbx
sar rbx, 0x3f
and rdx, rbx
add rax, rdx
cmp rcx, 3
jle 0x56cdac
mov ecx, 3
mov rbx, rcx
call fcn.0040b080
xor ebx, ebx
lea rcx, [0x0072f380]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
lea rcx, [rdx + 1]
cmp rdx, rcx
ja 0x56d365
mov rax, r9
mov ebx, 1
call fcn.0040b080
xor ebx, ebx
lea rcx, [0x0072f3a0]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
test rsi, rsi
jne 0x56ce28
test dil, dil
jne 0x56ce28
xor ecx, ecx
xor edi, edi
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
movups xmmword [rsp + 0x88], xmm15
movups xmmword [rsp + 0x98], xmm15
nop
lea rdx, [rsp + 0x88]
mov qword [rsp + 0x88], rdx
shl rsi, 1
mov r8, rbx
sub rbx, rsi
test rbx, rbx
jl 0x56d352
mov r9, qword [rsp + 0x98]
mov r10, qword [rsp + 0xa0]
mov r11, r10
sub r10, r9
cmp r10, rbx
jge 0x56cf0f
mov qword [rsp + 0x60], r9
nop
lea rcx, [rbx + r11*2]
mov qword [rsp + 0x68], rcx
lea rax, [0x00667c00]
mov rbx, r9
call fcn.0044a620
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x60]
cmp rdx, rcx
mov rsi, rcx
cmovl rcx, rdx
mov rbx, qword [rsp + 0x90]
cmp rax, rbx
je 0x56ced2
mov qword [rsp + 0x78], rax
call fcn.00466460
mov rax, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x60]
mov qword [rsp + 0x98], rsi
mov rdx, qword [rsp + 0x68]
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xc8]
lea rdx, [rsp + 0x88]
mov r8, qword [rsp + 0xc0]
xor ebx, ebx
jmp 0x56cf20
lea rbx, [r9 + 1]
nop word [rax + rax]
cmp r8, rbx
jle 0x56d2a7
jbe 0x56d347
movzx r9d, byte [rax + rbx]
cmp r9b, 0x25
jne 0x56d077
lea r9, [rbx + 1]
cmp r8, r9
jbe 0x56d33c
movzx r9d, byte [rax + rbx + 1]
lea r10d, [r9 - 0x30]
cmp r10b, 9
jbe 0x56cf7f
lea r10d, [r9 - 0x61]
nop
cmp r10b, 5
ja 0x56cf6c
lea r10d, [r9 - 0x57]
jmp 0x56cf7f
lea r10d, [r9 - 0x41]
cmp r10b, 5
ja 0x56cf7c
lea r10d, [r9 - 0x37]
jmp 0x56cf7f
xor r10d, r10d
lea r9, [rbx + 2]
cmp r8, r9
jbe 0x56d331
movzx r11d, byte [rax + rbx + 2]
lea r12d, [r11 - 0x30]
cmp r12b, 9
jbe 0x56cfbf
lea r12d, [r11 - 0x61]
cmp r12b, 5
ja 0x56cfac
lea r12d, [r11 - 0x57]
jmp 0x56cfbf
lea r12d, [r11 - 0x41]
cmp r12b, 5
ja 0x56cfbc
lea r12d, [r11 - 0x37]
jmp 0x56cfbf
xor r12d, r12d
shl r10d, 4
or r12d, r10d
nop
mov r10, qword [rsp + 0x88]
test r10, r10
je 0x56cfde
cmp r10, rdx
je 0x56cfe6
jmp 0x56d31e
mov qword [rsp + 0x88], rdx
mov rbx, qword [rsp + 0x98]
inc rbx
mov r10, qword [rsp + 0x90]
mov r11, qword [rsp + 0xa0]
cmp r11, rbx
jae 0x56d065
mov qword [rsp + 0x70], r9
mov byte [rsp + 0x46], r12b
mov rax, r10
mov rcx, r11
mov edi, 1
lea rsi, [0x00667c00]
call fcn.0044a700
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0x90], rax
mov rcx, qword [rsp + 0xc8]
lea rdx, [rsp + 0x88]
mov r8, qword [rsp + 0xc0]
mov r9, qword [rsp + 0x70]
movzx r12d, byte [rsp + 0x46]
mov r10, rax
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x98], rbx
mov byte [rbx + r10 - 1], r12b
jmp 0x56cf13
mov qword [rsp + 0x50], rbx
nop dword [rax]
cmp r9b, 0x2b
jne 0x56d1f0
cmp rcx, 6
jne 0x56d13f
nop
nop
mov r9, qword [rsp + 0x88]
nop
test r9, r9
je 0x56d0af
cmp r9, rdx
je 0x56d0b7
jmp 0x56d30b
mov qword [rsp + 0x88], rdx
mov r9, qword [rsp + 0x98]
inc r9
mov r10, qword [rsp + 0x90]
mov r11, qword [rsp + 0xa0]
cmp r11, r9
jae 0x56d12c
mov rax, r10
mov rbx, r9
mov rcx, r11
mov edi, 1
lea rsi, [0x00667c00]
call fcn.0044a700
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0x90], rax
mov rcx, qword [rsp + 0xc8]
lea rdx, [rsp + 0x88]
mov r8, qword [rsp + 0xc0]
mov r9, rbx
mov r10, rax
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x98], r9
mov byte [r9 + r10 - 1], 0x20
jmp 0x56d1e8
nop
nop
mov r9, qword [rsp + 0x88]
test r9, r9
je 0x56d158
cmp r9, rdx
je 0x56d160
jmp 0x56d2f8
mov qword [rsp + 0x88], rdx
mov r9, qword [rsp + 0x98]
inc r9
mov r10, qword [rsp + 0x90]
mov r11, qword [rsp + 0xa0]
nop dword [rax + rax]
cmp r11, r9
jae 0x56d1da
mov rax, r10
mov rbx, r9
mov rcx, r11
mov edi, 1
lea rsi, [0x00667c00]
call fcn.0044a700
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0x90], rax
mov rcx, qword [rsp + 0xc8]
lea rdx, [rsp + 0x88]
mov r8, qword [rsp + 0xc0]
mov r9, rbx
mov r10, rax
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x98], r9
mov byte [r9 + r10 - 1], 0x2b
mov r9, rbx
jmp 0x56cf13
nop
mov r10, qword [rsp + 0x88]
test r10, r10
je 0x56d20a
nop
cmp r10, rdx
je 0x56d212
jmp 0x56d2e5
mov qword [rsp + 0x88], rdx
mov r10, qword [rsp + 0x98]
inc r10
mov r11, qword [rsp + 0x90]
mov r12, qword [rsp + 0xa0]
cmp r12, r10
jae 0x56d292
mov byte [rsp + 0x47], r9b
mov rax, r11
mov rbx, r10
mov rcx, r12
mov edi, 1
lea rsi, [0x00667c00]
call fcn.0044a700
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0x90], rax
mov rcx, qword [rsp + 0xc8]
lea rdx, [rsp + 0x88]
mov r8, qword [rsp + 0xc0]
movzx r9d, byte [rsp + 0x47]
mov r10, rbx
mov r11, rax
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x98], r10
mov byte [r10 + r11 - 1], r9b
mov r9, rbx
jmp 0x56cf13
mov rax, qword [rsp + 0x90]
mov rdx, rax
neg rax
mov rbx, qword [rsp + 0x98]
nop dword [rax]
cmp rbx, rax
ja 0x56d2dc
mov rax, rdx
xor ecx, ecx
xor edi, edi
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
nop dword [rax]
call fcn.0045d000
lea rax, [0x00667a40]
lea rbx, [0x0072dd30]
call fcn.00436260
lea rax, [0x00667a40]
lea rbx, [0x0072dd30]
call fcn.00436260
lea rax, [0x00667a40]
lea rbx, [0x0072dd30]
call fcn.00436260
lea rax, [0x00667a40]
lea rbx, [0x0072dd30]
call fcn.00436260
mov rax, r9
mov rcx, r8
call fcn.00465aa0
mov rax, r9
mov rcx, r8
call fcn.00465aa0
mov rax, rbx
mov rcx, r8
call fcn.00465aa0
lea rax, [0x00667a40]
lea rbx, [0x0072dd40]
call fcn.00436260
mov rax, rdx
call fcn.00465b60
mov rax, rdx
mov rcx, r10
call fcn.00465b60
mov rcx, r10
mov rdx, rbx
nop
call fcn.00465ae0
mov rax, rdx
mov rcx, r11
call fcn.00465b60
mov rcx, r11
mov rdx, rbx
call fcn.00465ae0
mov rax, r8
mov rcx, rbx
call fcn.00465aa0
mov rax, r10
mov rcx, rbx
call fcn.00465aa0
mov rax, rdx
mov rcx, rbx
call fcn.00465aa0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
call fcn.00463440
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
jmp fcn.0056ca00