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

Disassembly:
lea r12, [rsp - 0x1a0]
cmp r12, qword [r14 + 0x10]
jbe 0x636347
push rbp
mov rbp, rsp
sub rsp, 0x218
mov qword [rsp + 0x228], rax
mov qword [rsp + 0x230], rbx
test byte [rax], al
movups xmmword [rsp + 0x178], xmm15
lea rdx, [0x00647ec0]
mov qword [rsp + 0x178], rdx
mov qword [rsp + 0x180], rax
mov edx, dword [rax + 0x118]
test edx, edx
jne 0x635660
lea rcx, [rax + 0x118]
lea rbx, [rsp + 0x178]
mov rax, rcx
call fcn.0046b720
mov rax, qword [rsp + 0x228]
mov rbx, qword [rsp + 0x230]
mov rdx, qword [rbx + 0xe8]
test rdx, rdx
je 0x635675
mov rsi, qword [rbx + 0xf0]
jmp 0x635683
lea rdx, [0x00743830]
lea rsi, [0x0092d4c0]
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x48], rdx
mov rdi, qword [rdx + 0x30]
nop
mov rax, rsi
lea rbx, [0x0067e3e0]
lea rcx, [0x0092d4c0]
call rdi
lea rdx, [0x00682300]
cmp rax, rdx
je 0x6356b3
xor ebx, ebx
mov rdx, qword [rsp + 0x230]
mov rsi, qword [rdx + 0x10]
nop
test rsi, rsi
je 0x6357b7
mov r8, qword [rdx + 0x38]
test r8, r8
je 0x63576f
mov r9, qword [rsi + 8]
mov rsi, qword [rsi]
nop dword [rax]
cmp r9, 4
jne 0x6356f6
cmp dword [rsi], 0x70747468
jne 0x6356f6
mov r10d, 1
jmp 0x635711
cmp r9, 5
jne 0x63570e
cmp dword [rsi], 0x70747468
jne 0x63570e
cmp byte [rsi + 4], 0x73
sete r10b
jmp 0x635711
xor r10d, r10d
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0x70], r9
mov qword [rsp + 0xd0], rsi
mov byte [rsp + 0x47], r10b
test r10b, r10b
je 0x635803
lea rdi, [rsp + 0x1b8]
lea rdi, [rdi - 0x20]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.004604cb
mov rbp, qword [rbp]
lea rax, [0x006b12c0]
mov rbx, r8
lea rcx, [rsp + 0x1b8]
call fcn.0040f2e0
jmp 0x6360d8
mov rcx, qword [rdx + 0x40]
nop
test rcx, rcx
je 0x635783
mov rax, qword [rdx + 0x48]
mov rcx, qword [rcx + 0x18]
call rcx
nop
lea rax, [0x006870a0]
call fcn.0040d480
mov qword [rax + 8], 0x18
lea rcx, [0x006cae54]
mov qword [rax], rcx
lea rbx, [0x00741740]
mov rcx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov rcx, qword [rdx + 0x40]
nop
nop dword [rax]
test rcx, rcx
je 0x6357cf
mov rax, qword [rdx + 0x48]
mov rcx, qword [rcx + 0x18]
call rcx
nop
lea rax, [0x006870a0]
call fcn.0040d480
mov qword [rax + 8], 0x15
lea rcx, [0x006c95a1]
mov qword [rax], rcx
lea rbx, [0x00741740]
mov rcx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov rax, qword [rdx + 0x40]
nop
test rax, rax
je 0x635939
lea rdi, [0x00742768]
cmp rax, rdi
je 0x635822
xor eax, eax
nop
jmp 0x635855
mov rbx, qword [rdx + 0x48]
lea rcx, [0x0092d4c0]
call fcn.00405280
mov rdx, qword [rsp + 0x230]
mov rbx, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0xd0]
mov r9, qword [rsp + 0x70]
movzx r10d, byte [rsp + 0x47]
test al, al
jne 0x635939
lea rax, [0x006bd040]
call fcn.0040d480
mov qword [rsp + 0x80], rax
cmp dword [0x0092d940], 0
je 0x635899
mov rbx, rax
mov rcx, qword [rsp + 0x230]
lea rax, [0x006bd040]
call fcn.00413600
mov rax, qword [rsp + 0x80]
mov rdi, rax
mov rsi, qword [rsp + 0x230]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00460784
mov rbp, qword [rbp]
lea rax, [0x00697780]
nop
call fcn.0040d480
mov qword [rax], 0
mov byte [rax + 0x10], 0
mov byte [rax + 0x11], 0
mov qword [rax + 8], 0
mov rcx, qword [rsp + 0x230]
mov rdx, qword [rcx + 0x40]
mov rbx, qword [rcx + 0x48]
mov qword [rax], rdx
cmp dword [0x0092d940], 0
jne 0x635902
mov rdx, qword [rsp + 0x80]
jmp 0x635926
call fcn.0045fe80
mov qword [r11], rbx
mov rdx, qword [rax + 8]
mov qword [r11 + 8], rdx
mov qword [r11 + 0x10], rax
mov rdx, qword [rsp + 0x80]
mov rsi, qword [rdx + 0x48]
mov qword [r11 + 0x18], rsi
mov qword [rax + 8], rbx
lea rsi, [0x00742790]
mov qword [rdx + 0x40], rsi
mov qword [rdx + 0x48], rax
mov qword [rsp + 0x80], rdx
mov rax, qword [rsp + 0x228]
mov rbx, rdx
call fcn.006354e0
test rax, rax
jne 0x63596b
movzx esi, byte [rsp + 0x47]
test sil, sil
mov rax, qword [rsp + 0x80]
jmp 0x6359f6
mov rcx, qword [rax + 0x18]
mov rax, rbx
mov rbx, qword [rsp + 0x80]
call rcx
nop dword [rax]
cmp qword [0x00899ad0], rbx
jne 0x6359cc
mov qword [rsp + 0x88], rax
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0x68], rbx
mov rdx, qword [0x00899ad8]
mov rax, rbx
mov rbx, rcx
mov rcx, rdx
call fcn.00405280
test al, al
jne 0x6359d5
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0x68]
add rsp, 0x218
pop rbp
ret
mov rax, qword [rsp + 0x80]
nop dword [rax]
call fcn.00636420
test rbx, rbx
jne 0x635bbc
movzx esi, byte [rsp + 0x47]
test sil, sil
je 0x635b13
mov qword [rsp + 0xa8], rax
mov rbx, qword [rax + 8]
test rbx, rbx
jne 0x635a11
xor edx, edx
jmp 0x635a34
mov rdx, qword [rax]
nop
lea rcx, [0x006f4698]
mov rax, rdx
nop
call fcn.00476400
cmp rax, 0xffffffffffffffff
setne dl
mov rax, qword [rsp + 0xa8]
test dl, dl
je 0x635abc
mov rcx, qword [rax + 0x40]
nop
test rcx, rcx
je 0x635a5b
mov rdx, qword [rax + 0x48]
mov rcx, qword [rcx + 0x18]
mov rax, rdx
call rcx
mov rax, qword [rsp + 0xa8]
movups xmmword [rsp + 0x1a8], xmm15
mov rcx, qword [rax]
mov rbx, qword [rax + 8]
mov rax, rcx
call fcn.0040a940
lea rcx, [0x0066d140]
mov qword [rsp + 0x1a8], rcx
mov qword [rsp + 0x1b0], rax
lea rax, [0x006cc4df]
mov ebx, 0x1b
lea rcx, [rsp + 0x1a8]
mov edi, 1
mov rsi, rdi
call fcn.004bfac0
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov rcx, qword [rax + 0x10]
cmp qword [rcx + 0x30], 0
jne 0x635bc7
mov rcx, qword [rax + 0x40]
nop
test rcx, rcx
je 0x635adf
mov rax, qword [rax + 0x48]
mov rcx, qword [rcx + 0x18]
call rcx
nop
lea rax, [0x006870a0]
call fcn.0040d480
mov qword [rax + 8], 0x1c
lea rcx, [0x006ccd0f]
mov qword [rax], rcx
lea rbx, [0x00741740]
mov rcx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x635b26
mov rax, qword [rax + 0x48]
mov rcx, qword [rcx + 0x18]
call rcx
nop
movups xmmword [rsp + 0x188], xmm15
movups xmmword [rsp + 0x198], xmm15
lea rax, [0x006cc4fa]
mov ebx, 0x1b
call fcn.0040a940
lea rcx, [0x0066d140]
mov qword [rsp + 0x188], rcx
mov qword [rsp + 0x190], rax
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0x70]
call fcn.0040a940
lea rcx, [0x0066d140]
mov qword [rsp + 0x198], rcx
mov qword [rsp + 0x1a0], rax
lea rax, [0x006c4e14]
mov ebx, 5
lea rcx, [rsp + 0x188]
mov edi, 2
mov rsi, rdi
call fcn.004bfac0
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov qword [rsp + 0xa0], rax
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rcx + 0x20]
mov rax, qword [rsp + 0x78]
call rdx
mov rbx, rax
xor eax, eax
call fcn.00407860
test al, al
jne 0x635f88
lea rax, [0x006be420]
call fcn.0040d480
cmp dword [0x0092d940], 0
jne 0x635c22
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0x230]
nop
jmp 0x635c4a
call fcn.0045fe60
mov rcx, qword [rsp + 0xa0]
mov qword [r11], rcx
mov rdx, qword [rsp + 0xb0]
mov qword [r11 + 8], rdx
mov rsi, qword [rsp + 0x230]
mov qword [r11 + 0x10], rsi
mov qword [rsp + 0xb8], rax
mov qword [rax], rcx
mov qword [rax + 0x10], rdx
mov qword [rax + 0x18], rsi
mov rbx, rax
mov rax, qword [rsp + 0x228]
call fcn.00637000
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x118], rbx
mov qword [rsp + 0x120], rcx
mov qword [rsp + 0x128], rdi
mov qword [rsp + 0x130], rsi
mov byte [rsp + 0x138], r8b
movups xmm0, xmmword [rsp + 0x110]
movups xmmword [rsp + 0xd8], xmm0
movups xmm0, xmmword [rsp + 0x120]
movups xmmword [rsp + 0xe8], xmm0
movups xmm0, xmmword [rsp + 0x130]
movups xmmword [rsp + 0xf8], xmm0
test r9, r9
jne 0x635f41
mov rcx, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0xe0]
mov rsi, qword [rsp + 0xe8]
mov r8, qword [rsp + 0xf0]
mov r9, qword [rsp + 0xf8]
movzx r10d, byte [rsp + 0x100]
mov rax, qword [rsp + 0x228]
mov rbx, qword [rsp + 0xb8]
call fcn.006397c0
nop dword [rax]
test rbx, rbx
jne 0x635ee9
mov qword [rsp + 0x108], rax
cmp qword [rax], 0
je 0x635d6d
mov rax, qword [rsp + 0x228]
mov rbx, qword [rsp + 0x230]
xor ecx, ecx
call fcn.00638a60
mov rdx, qword [rsp + 0x108]
mov rax, qword [rdx + 8]
mov rsi, qword [rdx]
mov rsi, qword [rsi + 0x18]
mov rbx, qword [rsp + 0xa0]
call rsi
jmp 0x635d80
mov rbx, qword [rsp + 0xb8]
call fcn.006413a0
nop word [rax + rax]
test rbx, rbx
je 0x635ea5
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0xc0], rcx
je 0x635daf
mov rdx, qword [rbx + 8]
mov rsi, qword [0x0089b350]
mov r8, qword [rsi]
mov r9d, dword [rbx + 0x10]
jmp 0x63607a
mov rax, rbx
test rbx, rbx
je 0x635e58
mov rax, qword [rsp + 0x228]
mov rbx, qword [rsp + 0x108]
call fcn.006385e0
test al, al
je 0x635e7b
mov rdx, qword [rsp + 0x108]
mov r11, qword [rdx + 0x18]
mov qword [rsp + 0x140], r11
movups xmm0, xmmword [rdx + 0x20]
movups xmmword [rsp + 0x148], xmm0
movups xmm0, xmmword [rdx + 0x30]
movups xmmword [rsp + 0x158], xmm0
movups xmm0, xmmword [rdx + 0x40]
movups xmmword [rsp + 0x168], xmm0
mov rbx, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x148]
mov rdi, qword [rsp + 0x150]
mov rsi, qword [rsp + 0x158]
mov r8, qword [rsp + 0x160]
mov r9, qword [rsp + 0x168]
movzx r10d, byte [rsp + 0x170]
mov rax, qword [rsp + 0x228]
call fcn.0063ab40
jmp 0x635e7b
mov rbx, qword [rsp + 0xa0]
mov rdi, rcx
mov rcx, rax
mov rax, qword [rsp + 0x108]
call fcn.00636640
test al, al
je 0x635fcf
mov rdx, qword [0x00899320]
mov rax, qword [rdx]
call rax
mov rax, qword [rsp + 0xa0]
call fcn.00636420
test rbx, rbx
je 0x635bc7
nop dword [rax]
jmp 0x635fc4
test byte [rax], al
cmp dword [0x0092d940], 0
jne 0x635eba
mov rdx, qword [rsp + 0x230]
jmp 0x635ed5
call fcn.0045fe40
mov rdx, qword [rsp + 0x230]
mov qword [r11], rdx
mov rsi, qword [rax + 0x80]
mov qword [r11 + 8], rsi
mov qword [rax + 0x80], rdx
xor ebx, ebx
xor ecx, ecx
add rsp, 0x218
pop rbp
ret
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0x60], rbx
mov rax, qword [rsp + 0x228]
mov rbx, qword [rsp + 0x230]
xor ecx, ecx
call fcn.00638a60
mov rdx, qword [rsp + 0xa0]
mov rsi, qword [rdx + 0x40]
nop
test rsi, rsi
je 0x635f29
mov rax, qword [rdx + 0x48]
mov rcx, qword [rsi + 0x18]
call rcx
xor eax, eax
mov rbx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0xc0]
add rsp, 0x218
pop rbp
ret
mov rdx, qword [rsp + 0xa0]
mov rsi, qword [rdx + 0x40]
nop
test rsi, rsi
je 0x635f77
mov qword [rsp + 0xc0], r10
mov qword [rsp + 0x60], r9
mov rax, qword [rdx + 0x48]
mov rcx, qword [rsi + 0x18]
call rcx
mov r9, qword [rsp + 0x60]
mov r10, qword [rsp + 0xc0]
xor eax, eax
mov rbx, r9
mov rcx, r10
add rsp, 0x218
pop rbp
ret
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rcx + 0x40]
test rdx, rdx
je 0x635fa3
mov rax, qword [rcx + 0x48]
mov rcx, qword [rdx + 0x18]
call rcx
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x28]
mov rax, qword [rsp + 0x78]
call rcx
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov rdx, qword [rsp + 0x60]
lea rsi, [0x00741d60]
nop dword [rax + rax]
cmp rdx, rsi
jne 0x635ff6
mov rdx, qword [rsp + 0xc0]
mov rbx, qword [rdx]
mov rcx, qword [rdx + 8]
jmp 0x636001
mov rbx, rdx
mov rcx, qword [rsp + 0xc0]
lea rdx, [0x00741d80]
cmp rbx, rdx
jne 0x636014
mov rbx, qword [rcx]
mov rcx, qword [rcx + 8]
mov rdx, qword [rsp + 0xa0]
mov rsi, qword [rdx + 0x40]
mov rax, qword [rdx + 0x48]
lea rdx, [0x00742790]
cmp rsi, rdx
jne 0x636035
mov rdx, rax
jmp 0x63603d
mov rdx, rax
mov eax, 0
jne 0x63606f
cmp byte [rax + 0x11], 0
jne 0x63606f
nop
test rsi, rsi
je 0x63606f
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0xc0], rcx
mov rcx, qword [rsi + 0x18]
mov rax, rdx
nop
call rcx
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x60]
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov r10, r9
and r9, r8
shl r9, 4
mov r11, qword [r9 + rsi + 8]
cmp r11, rdx
je 0x6360bb
lea r9, [r10 + 1]
test r11, r11
jne 0x63607a
lea rax, [0x0089b350]
mov rbx, rdx
call fcn.0040aaa0
mov rcx, qword [rsp + 0xc0]
mov rbx, rax
mov rax, qword [rsp + 0x60]
jmp 0x635db2
mov rdx, qword [r9 + rsi + 0x10]
mov rax, rbx
mov rbx, rdx
jmp 0x635db2
lea rax, [rsp + 0x1b8]
call fcn.0040f500
mov rdx, qword [rsp + 0x1b8]
test rdx, rdx
je 0x63614d
mov rbx, qword [rdx + 8]
mov qword [rsp + 0x58], rbx
mov rsi, qword [rsp + 0x1c0]
mov rax, qword [rdx]
mov qword [rsp + 0x98], rax
mov rdx, qword [rsi]
mov rsi, qword [rsi + 8]
test rbx, rbx
jne 0x636118
lea r9, [0x00873120]
xor ecx, ecx
jmp 0x636140
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x90], rdx
xor ecx, ecx
jmp 0x636178
lea r9, [0x00873120]
xor ecx, ecx
jmp 0x636140
lea r9, [0x00873120]
mov ecx, 1
test cl, cl
je 0x6361ea
jmp 0x636275
mov rdx, qword [rsp + 0x230]
mov rbx, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0xd0]
mov r9, qword [rsp + 0x70]
movzx r10d, byte [rsp + 0x47]
jmp 0x635803
mov rcx, r8
cmp rcx, rbx
jge 0x636134
movzx edi, byte [rax + rcx]
cmp edi, 0x80
jge 0x63618f
lea r8, [rcx + 1]
jmp 0x6361b3
call fcn.00456f00
mov rdx, qword [rsp + 0x90]
mov rsi, qword [rsp + 0x50]
mov edi, eax
mov r8, rbx
mov rax, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x58]
movsxd rdi, edi
nop word [rax + rax]
nop
cmp rdi, 0x7f
jge 0x636129
jae 0x636339
lea r9, [0x00873120]
movzx edi, byte [r9 + rdi]
nop dword [rax]
test dil, dil
jne 0x636175
jmp 0x636130
mov rcx, qword [rsp + 0x230]
mov rdx, qword [rcx + 0x40]
nop
test rdx, rdx
je 0x636213
mov rax, qword [rcx + 0x48]
mov rcx, qword [rdx + 0x18]
call rcx
mov rax, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x58]
movups xmmword [rsp + 0x1a8], xmm15
nop dword [rax]
call fcn.0040a940
lea rcx, [0x0066d140]
mov qword [rsp + 0x1a8], rcx
mov qword [rsp + 0x1b0], rax
lea rax, [0x006d128b]
mov ebx, 0x26
lea rcx, [rsp + 0x1a8]
mov edi, 1
mov rsi, rdi
call fcn.004bfac0
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
lea rdx, [rcx + 0x10]
dec rsi
test rsi, rsi
jle 0x6360cb
mov rcx, rdx
mov rdi, qword [rdx]
mov rdx, qword [rdx + 8]
xor r8d, r8d
jmp 0x636290
inc r8
cmp r8, rdx
jge 0x63626e
movzx r10d, byte [r8 + rdi]
nop word [rax + rax]
cmp r10b, 0x20
jb 0x6362b0
cmp r10b, 0x7f
jne 0x63628d
cmp r10b, 0x20
nop
je 0x63628d
cmp r10b, 9
je 0x63628d
mov rcx, qword [rsp + 0x230]
mov rdx, qword [rcx + 0x40]
nop
test rdx, rdx
je 0x6362e2
mov rax, qword [rcx + 0x48]
mov rcx, qword [rdx + 0x18]
call rcx
mov rax, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x58]
movups xmmword [rsp + 0x1a8], xmm15
call fcn.0040a940
lea rcx, [0x0066d140]
mov qword [rsp + 0x1a8], rcx
mov qword [rsp + 0x1b0], rax
lea rax, [0x006d3091]
mov ebx, 0x2b
lea rcx, [rsp + 0x1a8]
mov edi, 1
mov rsi, rdi
call fcn.004bfac0
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov rax, rdi
mov ecx, 0x7f
call fcn.004601e0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.0045df00
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.006355e0