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

Disassembly:
lea r12, [rsp - 0x28]
cmp r12, qword [r14 + 0x10]
jbe 0x56e4a8
sub rsp, 0xa8
mov qword [rsp + 0xa0], rbp
lea rbp, [rsp + 0xa0]
mov qword [rsp + 0xb0], rax
mov rdx, qword [rax + 0x88]
mov rsi, qword [rax]
mov qword [rsp + 0x80], rsi
mov r8, qword [rax + 0x90]
mov rdx, qword [rdx + 0x30]
xor ebx, ebx
xor ecx, ecx
mov rdi, rcx
mov rax, r8
call rdx
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], rcx
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rdx + 0x88]
mov r8, qword [rdx + 0x90]
mov rsi, qword [rsi + 0x20]
mov rax, r8
call rsi
lea rax, [0x00600200]
call fcn.0040d1e0
mov word [rax], 0xfe
mov byte [rax + 2], 0
mov rdx, qword [rsp + 0x48]
mov byte [rax + 3], dl
mov rsi, qword [rsp + 0xb0]
mov r8, qword [rsi + 0x88]
mov r9, qword [rsi + 0x90]
mov r8, qword [r8 + 0x38]
mov rbx, rax
mov ecx, 4
mov rdi, rcx
mov rax, r9
call r8
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rdx + 0x88]
mov rax, qword [rdx + 0x90]
mov rsi, qword [rsi + 0x38]
mov rbx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
call rsi
mov rdx, qword [rsp + 0xb0]
mov rax, qword [rdx + 0x18]
call fcn.005735e0
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rdx + 0x88]
mov r8, qword [rdx + 0x90]
mov rsi, qword [rsi + 0x38]
mov rdi, rcx
mov rcx, rbx
mov rbx, rax
mov rax, r8
call rsi
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rdx + 0x18]
cmp word [rsi + 0xf8], 0
jne 0x56de66
cmp qword [rsi + 0xe0], 0
jne 0x56de66
mov rax, qword [rsp + 0x80]
mov ebx, 0x2f
nop
call fcn.005654e0
lea rax, [0x006577a0]
mov ebx, 0x39
call fcn.00468600
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
mov rcx, qword [rsi + 0xe0]
mov rdi, qword [rsi + 0xe8]
mov rsi, qword [rsi + 0xf0]
nop dword [rax + rax]
test rcx, rcx
je 0x56de9e
mov r8, qword [rdx + 0x20]
mov qword [r8 + 0x178], rdi
mov qword [r8 + 0x180], rsi
mov qword [r8 + 0x170], rcx
mov rcx, qword [rdx + 0x18]
cmp word [rcx + 0xa0], 0
jne 0x56ded1
movzx ecx, word [rcx + 0xf8]
test cx, cx
je 0x56df06
mov rsi, qword [rdx + 0x20]
mov rdi, qword [rsi + 0x98]
mov rsi, qword [rsi + 0xa0]
xor eax, eax
jmp 0x56e2d0
mov rax, qword [rsp + 0x80]
mov ebx, 0x32
nop
call fcn.005654e0
lea rax, [0x0065463a]
mov ebx, 0x2b
call fcn.00468600
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
mov rcx, qword [rdx + 0x20]
movups xmmword [rcx + 8], xmm15
mov qword [rcx], 0
mov rcx, qword [rdx + 0x20]
cmp qword [rcx + 0x1c8], 0
je 0x56e161
mov rcx, qword [rdx + 0x38]
movzx eax, word [rcx + 0x1a]
call fcn.00561280
test rax, rax
je 0x56e2ab
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rcx + 0x80]
mov rbx, qword [rax + 0x18]
cmp qword [rdx + 0x18], rbx
je 0x56df8a
mov rdx, qword [rcx + 0x20]
movups xmmword [rdx + 0x1c8], xmm15
mov qword [rdx + 0x1c0], 0
mov rdx, qword [rcx + 0x20]
movups xmmword [rdx + 0x1e0], xmm15
mov qword [rdx + 0x1d8], 0
jmp 0x56e15e
mov rcx, qword [rsp + 0x80]
mov rax, qword [rcx + 0x48]
call fcn.00561660
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rdx + 0x38]
mov rdi, qword [rsi + 0x68]
mov r8, qword [rsi + 0x70]
mov rsi, qword [rsi + 0x78]
mov r9, rsi
mov rsi, r8
mov r8, r9
nop dword [rax]
call fcn.0049c9a0
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rcx + 0x20]
mov rbx, qword [rcx + 0x38]
mov rsi, rax
movabs rax, 0x431bde82d7b634db
mov rdi, rdx
imul rsi
sar rdx, 0x12
sar rsi, 0x3f
sub rdx, rsi
mov rsi, qword [rdi + 0x1c0]
add edx, dword [rbx + 0xe0]
mov dword [rsi + 0x18], edx
mov rdx, qword [rcx + 0x80]
mov rax, qword [rdx + 0x18]
call fcn.004d32e0
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x68], rbx
lea rax, [0x00600200]
call fcn.0040d1e0
mov word [rax], 0xfe
mov byte [rax + 2], 0
mov rcx, qword [rsp + 0x48]
mov byte [rax + 3], cl
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rdx + 0x38]
mov edi, 4
mov rsi, rax
mov rax, qword [rsp + 0x68]
mov r8, rbx
mov rbx, rsi
mov rcx, rdi
call r8
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rcx + 0x38]
mov rax, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
call rdx
mov rcx, qword [rsp + 0xb0]
mov rax, qword [rcx + 0x18]
call fcn.005735e0
mov rdx, qword [rsp + 0x38]
mov rsi, qword [rdx + 0x38]
mov rdi, rcx
mov rcx, rbx
mov rbx, rax
mov rax, qword [rsp + 0x68]
call rsi
mov rcx, qword [rsp + 0xb0]
mov rax, qword [rcx + 0x20]
call fcn.00571e60
mov rdx, qword [rsp + 0x38]
mov rsi, qword [rdx + 0x38]
mov rdi, rcx
mov rcx, rbx
mov rbx, rax
mov rax, qword [rsp + 0x68]
call rsi
mov rcx, qword [rsp + 0xb0]
mov rax, qword [rcx + 0x80]
mov rbx, qword [rcx + 0x58]
mov rdx, qword [rcx + 0x60]
mov rdi, qword [rcx + 0x68]
mov rsi, qword [rsp + 0x38]
mov r8, qword [rsp + 0x68]
mov rcx, rdx
call fcn.0057a160
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x58], rcx
lea rax, [0x005ff0c0]
call fcn.0040d1e0
mov rcx, qword [rsp + 0x60]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0x58]
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0x98]
mov qword [rax], rcx
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rcx + 0x20]
mov rbx, rax
mov edi, 1
mov rax, rdx
mov rcx, rdi
call fcn.00571ee0
mov rcx, qword [rsp + 0xb0]
mov rdx, rcx
mov rax, qword [rdx + 0x20]
call fcn.005705c0
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rdx + 0x88]
mov rdi, qword [rdx + 0x90]
mov rsi, qword [rsi + 0x38]
mov r8, rax
mov rax, rdi
mov r9, rbx
mov rbx, r8
mov r10, rcx
mov rcx, r9
mov rdi, r10
call rsi
mov rcx, qword [rsp + 0xb0]
mov rax, qword [rcx + 0x20]
call fcn.005705c0
mov rdi, rbx
mov rsi, rcx
mov ebx, 0x16
mov rcx, rax
mov rax, qword [rsp + 0x80]
call fcn.00566040
test rbx, rbx
jne 0x56e295
mov rax, qword [rsp + 0x80]
call fcn.00566200
nop dword [rax]
test rcx, rcx
jne 0x56e27f
lea rcx, [0x0060c240]
cmp rax, rcx
jne 0x56e22f
mov rax, qword [rsp + 0xb0]
mov qword [rax + 0x18], rbx
call fcn.0056d9c0
test rax, rax
je 0x56e21b
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x80]
mov ebx, 0xa
call fcn.005654e0
lea rax, [0x0060c240]
xor ebx, ebx
mov rcx, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x90]
call fcn.00561f20
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
mov rax, rcx
mov rbx, rdi
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
mov rax, rbx
mov rbx, rcx
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
mov rax, qword [rsp + 0x80]
mov ebx, 0x50
call fcn.005654e0
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
inc rax
cmp rax, rsi
jge 0x56e475
movzx r8d, word [rdi + rax*2]
nop
cmp r8w, cx
jne 0x56e2cd
mov word [rsp + 0x36], cx
mov rcx, qword [rdx + 0x28]
mov rax, qword [rdx + 0x30]
mov rcx, qword [rcx + 0x18]
call rcx
movzx ecx, word [rsp + 0x36]
nop
cmp ax, cx
je 0x56e43f
mov eax, ecx
call fcn.0057a7c0
movzx edx, word [rsp + 0x36]
cmp dx, 0x1d
je 0x56e355
test cl, cl
jne 0x56e355
mov rax, qword [rsp + 0x80]
mov ebx, 0x50
call fcn.005654e0
lea rax, [0x00655c88]
mov ebx, 0x30
nop dword [rax]
call fcn.00468600
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
mov rcx, qword [rsp + 0x80]
mov rax, qword [rcx + 0x48]
call fcn.00561640
movzx ecx, word [rsp + 0x36]
call fcn.0057a580
test rcx, rcx
jne 0x56e405
mov rcx, qword [rsp + 0xb0]
mov qword [rcx + 0x28], rax
mov qword [rcx + 0x30], rbx
mov rdx, qword [rax + 0x20]
mov rax, rbx
call rdx
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x58], rcx
lea rax, [0x005ff1e0]
call fcn.0040d1e0
movzx ecx, word [rsp + 0x36]
mov word [rax], cx
mov rcx, qword [rsp + 0x60]
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0x58]
mov qword [rax + 0x18], rcx
mov rcx, qword [rsp + 0x98]
mov qword [rax + 8], rcx
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [rdx + 0x20]
mov qword [rcx + 0x190], 1
mov qword [rcx + 0x198], 1
mov qword [rcx + 0x188], rax
nop
jmp 0x56df06
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x40], rcx
mov rax, qword [rsp + 0x80]
mov ebx, 0x50
nop dword [rax]
call fcn.005654e0
mov rax, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
mov rax, qword [rsp + 0x80]
mov ebx, 0x2f
call fcn.005654e0
lea rax, [0x00657a25]
mov ebx, 0x3b
nop dword [rax]
call fcn.00468600
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
mov rax, qword [rsp + 0x80]
mov ebx, 0x2f
call fcn.005654e0
lea rax, [0x00652d1c]
mov ebx, 0x26
call fcn.00468600
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
mov qword [rsp + 8], rax
call fcn.0045f280
mov rax, qword [rsp + 8]
jmp fcn.0056dce0