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

Disassembly:
lea r12, [rsp - 0x68]
cmp r12, qword [r14 + 0x10]
jbe 0x52b1ba
push rbp
mov rbp, rsp
sub rsp, 0xe0
mov qword [rsp + 0x108], rdi
mov qword [rsp + 0x110], rsi
mov byte [rsp + 0x120], r9b
mov qword [rsp + 0x118], r8
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0x100], rcx
test r8, r8
je 0x52a9ea
test r9b, r9b
jne 0x52a9c9
lea rdx, [r8 - 2]
cmp rdx, 0x3c
jbe 0x52a9ea
nop
test r9b, r9b
je 0x52b158
cmp r8, 2
je 0x52a9ea
cmp r8, 8
je 0x52a9ea
cmp r8, 0xa
je 0x52a9ea
nop dword [rax + rax]
cmp r8, 0x10
jne 0x52b158
mov qword [rsp + 0x108], rdi
mov qword [rsp + 0x110], rsi
mov rcx, qword [rdi + 0x18]
mov rax, rsi
call rcx
mov rdx, qword [rsp + 0x118]
test rdx, rdx
jne 0x52aba2
test rbx, rbx
je 0x52aa2e
mov r15d, 0xa
mov esi, 0x2e
xor edi, edi
xor r12d, r12d
jmp 0x52abaf
cmp al, 0x30
je 0x52aa47
mov r15d, 0xa
mov esi, 0x2e
xor edi, edi
xor r12d, r12d
jmp 0x52abaf
mov rcx, qword [rsp + 0x108]
mov rdx, qword [rcx + 0x18]
mov rax, qword [rsp + 0x110]
call rdx
nop dword [rax]
test rbx, rbx
je 0x52aa89
mov edi, 0xa
movzx r11d, byte [rsp + 0x120]
xor r13d, r13d
mov r15d, 0xa
mov edx, 1
xor r12d, r12d
jmp 0x52ab90
cmp al, 0x58
ja 0x52aa9b
cmp al, 0x42
je 0x52aa9f
cmp al, 0x4f
je 0x52aac4
cmp al, 0x58
je 0x52aae7
jmp 0x52ab06
cmp al, 0x62
jne 0x52aac0
mov edi, 0xa
movzx r11d, byte [rsp + 0x120]
xor r13d, r13d
mov r12d, 0x62
mov r15d, 2
jmp 0x52ab35
cmp al, 0x6f
jne 0x52aae3
mov edi, 0xa
movzx r11d, byte [rsp + 0x120]
xor r13d, r13d
mov r12d, 0x6f
mov r15d, 8
jmp 0x52ab35
cmp al, 0x78
jne 0x52ab06
mov edi, 0xa
movzx r11d, byte [rsp + 0x120]
xor r13d, r13d
mov r12d, 0x78
mov r15d, 0x10
jmp 0x52ab35
movzx r11d, byte [rsp + 0x120]
movzx r12d, r11b
test r12, r12
mov r12d, 0x30
mov r13d, 0
cmovne r12, r13
mov r15d, 8
mov edi, 0xa
cmovne r15, rdi
test r12, r12
je 0x52ab8b
nop word [rax + rax]
cmp r12, 0x30
je 0x52ab87
mov qword [rsp + 0x48], r12
mov qword [rsp + 0xb8], r15
mov rcx, qword [rsp + 0x108]
mov rdx, qword [rcx + 0x18]
mov rax, qword [rsp + 0x110]
call rdx
mov edi, 0xa
movzx r11d, byte [rsp + 0x120]
mov r12, qword [rsp + 0x48]
xor r13d, r13d
mov r15, qword [rsp + 0xb8]
xor edx, edx
jmp 0x52ab90
mov edx, 1
mov esi, 0x30
mov rdi, rdx
mov rdx, qword [rsp + 0x118]
jmp 0x52abaf
mov r15, rdx
mov esi, 0x2e
xor edi, edi
xor r12d, r12d
test r15, r15
je 0x52b153
mov r8d, eax
mov rax, 0xffffffffffffffff
mov r9, rdx
xor edx, edx
div r15
mov rdx, r15
mov r10d, 1
jmp 0x52abe0
imul r15, rdx
inc r10
nop dword [rax]
cmp rax, r15
jae 0x52abd5
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x58], r10
mov qword [rsp + 0xb8], rdx
mov r11, qword [rsp + 0x108]
mov rax, qword [rsp + 0x110]
mov r13, qword [rsp + 0xf0]
mov qword [rsp + 0x90], rax
movzx eax, byte [rsp + 0x120]
mov byte [rsp + 0x43], al
mov qword [rsp + 0x88], rcx
xor ecx, ecx
mov byte [rsp + 0x42], cl
xor ecx, ecx
mov qword [rsp + 0x60], rcx
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0x80], rdx
xor edx, edx
mov qword [rsp + 0xa8], rdx
xor edx, edx
mov qword [rsp + 0x70], rdx
mov rdx, 0xffffffffffffffff
mov qword [rsp + 0x68], rdx
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x80]
jmp 0x52ad35
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0xc0], r13
mov qword [rsp + 0xa8], r8
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x98], rdi
mov byte [rsp + 0x43], r12b
mov rcx, qword [r11 + 0x18]
call rcx
mov rdx, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x58]
mov r8, qword [rsp + 0x118]
mov r9, qword [rsp + 0x110]
mov r10, qword [rsp + 0x68]
mov r11, qword [rsp + 0x70]
mov r12, qword [rsp + 0xa8]
mov r13, qword [rsp + 0xc0]
mov r15, qword [rsp + 0xb0]
mov r9, r8
mov r10, rdi
mov r11, rsi
mov r12, qword [rsp + 0x48]
mov r15, qword [rsp + 0x50]
mov r8d, eax
mov esi, dword [rsp + 0x44]
mov rdi, qword [rsp + 0x98]
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xc0], r13
mov qword [rsp + 0x98], rdi
mov dword [rsp + 0x44], esi
nop dword [rax]
test rbx, rbx
jne 0x52af60
cmp r8b, 0x2e
jne 0x52adbb
movzx r12d, byte [rsp + 0x43]
test r12b, r12b
je 0x52adc1
cmp esi, 0x5f
sete cl
movzx ebx, byte [rsp + 0x42]
or ecx, ebx
xor r12d, r12d
mov byte [rsp + 0x42], cl
mov ebx, 0x2e
mov dword [rsp + 0x44], ebx
mov rdx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0xb0]
mov r8, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x70]
mov qword [rsp + 0x68], rdi
jmp 0x52ac8f
movzx r12d, byte [rsp + 0x43]
cmp r8b, 0x5f
jne 0x52ae0d
test r9, r9
jne 0x52ae0d
cmp esi, 0x30
setne cl
movzx ebx, byte [rsp + 0x42]
or ecx, ebx
mov rbx, rdx
mov byte [rsp + 0x42], cl
mov esi, 0x5f
mov dword [rsp + 0x44], esi
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xb0]
mov r15, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x50]
jmp 0x52ac8f
lea esi, [r8 - 0x30]
cmp sil, 9
ja 0x52ae1d
movzx esi, sil
jmp 0x52ae60
lea esi, [r8 - 0x61]
cmp sil, 0x19
ja 0x52ae31
lea esi, [r8 - 0x57]
movzx esi, sil
jmp 0x52ae60
lea esi, [r8 - 0x41]
cmp sil, 0x19
ja 0x52ae5a
nop dword [rax + rax]
cmp rdx, 0x24
jg 0x52ae50
lea esi, [r8 - 0x37]
movzx esi, sil
jmp 0x52ae60
lea esi, [r8 - 0x1d]
movzx esi, sil
jmp 0x52ae60
mov esi, 0x3f
nop
cmp rsi, rdx
jae 0x52af26
mov rcx, r15
mov r15, qword [rsp + 0x70]
imul r15, rdx
mov rbx, rdx
mov rdx, qword [rsp + 0x60]
inc rdx
add r15, rsi
cmp r10, rdx
je 0x52ae9a
mov rsi, qword [rsp + 0xb0]
mov r8, qword [rsp + 0xa8]
jmp 0x52af0b
mov rax, r13
mov rbx, qword [rsp + 0xa8]
mov rdi, rax
mov rsi, rbx
mov r8, qword [rsp + 0xb0]
mov r9, rcx
mov r10, r15
mov rcx, r8
nop dword [rax]
call fcn.00523d80
mov rdi, qword [rsp + 0x98]
mov r9, qword [rsp + 0x118]
mov r10, qword [rsp + 0x58]
mov r11, qword [rsp + 0x108]
movzx r12d, byte [rsp + 0x43]
xor edx, edx
mov rsi, rcx
mov r8, rbx
xor r15d, r15d
mov r13, rax
mov rax, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x50]
mov rbx, qword [rsp + 0xb8]
inc rdi
mov qword [rsp + 0x78], rax
mov eax, 0x30
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x78]
jmp 0x52ac8f
mov rcx, qword [r11 + 0x20]
call rcx
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xa0]
mov esi, dword [rsp + 0x44]
mov rdi, qword [rsp + 0x98]
mov r12, qword [rsp + 0x48]
mov r13, qword [rsp + 0xc0]
nop dword [rax]
cmp qword [0x008bd9f0], rbx
jne 0x52afe0
mov rdx, qword [0x008bd9f8]
mov rax, rbx
mov rbx, rcx
mov rcx, rdx
call fcn.00404940
nop
test al, al
je 0x52afab
mov rdx, qword [rsp + 0xb8]
mov esi, dword [rsp + 0x44]
mov rdi, qword [rsp + 0x98]
mov r12, qword [rsp + 0x48]
mov r13, qword [rsp + 0xc0]
xor ebx, ebx
xor ecx, ecx
jmp 0x52afe0
mov rdx, qword [rsp + 0xb8]
mov esi, dword [rsp + 0x44]
mov rdi, qword [rsp + 0x98]
mov r12, qword [rsp + 0x48]
mov r13, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xc8]
nop dword [rax]
test rbx, rbx
jne 0x52b003
movzx r11d, byte [rsp + 0x42]
test r11b, r11b
jne 0x52aff5
cmp esi, 0x5f
jne 0x52b003
mov rbx, qword [0x008bec10]
mov rcx, qword [0x008bec18]
test rdi, rdi
jne 0x52b044
cmp r12, 0x30
je 0x52b01e
mov rbx, qword [0x008bec00]
mov rcx, qword [0x008bec08]
jmp 0x52b044
mov rax, r13
mov edi, 0xa
mov esi, 1
mov r8, rbx
mov r9, rcx
xor ebx, ebx
mov rcx, qword [rsp + 0xb0]
add rsp, 0xe0
pop rbp
ret
mov r11, qword [rsp + 0x60]
test r11, r11
jle 0x52b05b
mov rax, rdx
mov esi, 1
jmp 0x52b0e4
mov rax, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0xa8]
jmp 0x52b070
dec rsi
test rsi, rsi
jle 0x52b080
mov r10, qword [r13 + rsi*8 - 8]
test r10, r10
je 0x52b06d
nop
cmp rsi, rax
ja 0x52b0b5
mov r10, qword [rsp + 0x68]
mov r11, r10
sub r10, rdi
test r11, r11
cmovge rdi, r10
mov r8, rbx
mov r9, rcx
mov rbx, rsi
mov rcx, rax
mov rsi, rdi
mov rax, r13
mov rdi, rdx
add rsp, 0xe0
pop rbp
ret
mov rcx, rsi
mov rdx, rax
nop dword [rax + rax]
call fcn.004669e0
mov r12, rdx
imul r12, rsi
imul rdx, rdx
mov r15, r11
sar r15, 1
test r11, 1
cmovne rsi, r12
mov r11, r15
test r11, r11
jg 0x52b0c5
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xa0], rbx
mov rax, r13
mov rbx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0xb0]
mov rdi, rax
mov r8, rcx
mov r9, rsi
mov r10, qword [rsp + 0x70]
mov rsi, rbx
nop dword [rax]
call fcn.00523d80
mov rdx, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0x98]
mov r13, rax
mov rsi, rbx
mov rbx, qword [rsp + 0xa0]
mov rax, rcx
mov rcx, qword [rsp + 0xc8]
jmp 0x52b06b
call fcn.004357c0
movups xmmword [rsp + 0xd0], xmm15
mov rax, r8
call fcn.0040adc0
lea rcx, [0x0065b920]
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0xd8], rax
lea rax, [0x006b6e71]
mov ebx, 0x16
lea rcx, [rsp + 0xd0]
mov edi, 1
mov rsi, rdi
nop dword [rax]
call fcn.004e0560
call fcn.0040ae40
mov rbx, rax
lea rax, [0x0065b7a0]
call fcn.00436ac0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r8
mov byte [rsp + 0x38], r9b
nop dword [rax]
call fcn.004646a0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
movzx r9d, byte [rsp + 0x38]
jmp fcn.0052a960