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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x548]
cmp rax, qword [rcx + 0x10]
jbe 0x5290f9
sub rsp, 0x5c8
mov qword [rsp + 0x5c0], rbp
lea rbp, [rsp + 0x5c0]
mov eax, dword [rsp + 0x5f0]
cmp eax, 0x10
jge 0x5290a7
mov rcx, qword [rsp + 0x5e0]
lea edx, [rcx + 1]
movsxd rdx, edx
mov qword [rsp + 0x40], rdx
mov rbx, qword [rsp + 0x5e8]
cmp rdx, rbx
ja 0x5290a0
mov ebx, dword [0x006eff5c]
movzx esi, word [0x006eff58]
movsxd r8, ecx
cmp r8, rdx
jae 0x529099
shl r8, 3
mov r9, qword [rsp + 0x5d8]
mov word [r9 + r8], si
mov dword [r9 + r8 + 4], ebx
lea ebx, [rcx - 1]
cmp eax, ebx
jle 0x529092
mov dword [rsp + 0x28], ebx
lea rdi, [rsp + 0x60]
xorps xmm0, xmm0
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00454df1
mov rbp, qword [rbp]
lea rdi, [rsp + 0x1a0]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00454d20
mov rbp, qword [rbp]
mov eax, 1
cmp eax, ebx
jg 0x528d6d
mov qword [rsp + 0x4c], 0
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], 0
mov dword [rsp + 0x4c], eax
cmp rdx, 1
jbe 0x52908b
mov esi, dword [r9 + 0xc]
mov dword [rsp + 0x50], esi
cmp rdx, 2
jbe 0x529084
mov esi, dword [r9 + 0x14]
mov dword [rsp + 0x54], esi
mov esi, dword [r9 + 0xc]
mov edi, dword [r9 + 4]
add esi, edi
mov dword [rsp + 0x58], esi
movsxd rsi, eax
cmp rsi, 0x10
jae 0x52907d
mov rdi, qword [rsp + 0x4c]
lea r8, [rsi + rsi*4]
mov r10, r8
shl r8, 2
mov qword [rsp + r8 + 0x60], rdi
lea rdi, [rsp + r10*4 + 0x60]
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rdi + 4], xmm0
mov rdi, rsi
shl rsi, 6
lea rsi, [rsp + rsi + 0x1a0]
mov dword [rsi + rdi*4], 2
cmp eax, 1
jne 0x528d63
mov dword [rsp + r10*4 + 0x6c], 0x7fffffff
inc eax
cmp eax, ebx
jle 0x528cbe
movsxd rax, ebx
mov qword [rsp + 0x38], rax
cmp rax, 0x10
jae 0x529076
lea rsi, [rax + rax*4]
mov rdi, rcx
shl ecx, 1
add ecx, 0xfffffffc
mov dword [rsp + rsi*4 + 0x70], ecx
mov ecx, ebx
mov dword [rsp + 0x2c], ebx
movsxd rsi, ebx
cmp rsi, 0x10
jae 0x528df0
lea r8, [rsi + rsi*4]
mov qword [rsp + 0x30], r8
mov r10d, dword [rsp + r8*4 + 0x6c]
cmp r10d, 0x7fffffff
jne 0x528dfe
mov r11d, dword [rsp + r8*4 + 0x68]
cmp r11d, 0x7fffffff
jne 0x528dfe
mov dword [rsp + r8*4 + 0x70], 0
inc ebx
movsxd rsi, ebx
cmp rsi, 0x10
jae 0x528df7
lea rsi, [rsi + rsi*4]
mov dword [rsp + rsi*4 + 0x6c], 0x7fffffff
mov dword [rsp + 0x2c], ebx
movsxd rsi, ebx
cmp rsi, 0x10
jb 0x528d9e
call fcn.004293e0
ud2
call fcn.004293e0
ud2
mov r11d, dword [rsp + r8*4 + 0x64]
mov dword [rsp + 0x24], r11d
mov r12d, dword [rsp + r8*4 + 0x68]
cmp r12d, r10d
jge 0x528fd1
mov r10, rsi
shl rsi, 6
lea rsi, [rsp + rsi + 0x1a0]
mov r13d, dword [rsi + r10*4]
mov dword [rsp + r8*4 + 0x64], r12d
lea r12d, [r13 + 1]
mov dword [rsi + r10*4], r12d
movsxd rsi, r12d
cmp rsi, rdx
jae 0x528fca
shl rsi, 3
mov esi, dword [r9 + rsi + 4]
mov dword [rsp + r8*4 + 0x68], esi
mov esi, dword [rsp + r8*4 + 0x70]
lea r10d, [rsi - 1]
mov dword [rsp + r8*4 + 0x70], r10d
cmp esi, 1
jne 0x528f97
mov esi, dword [rsp + r8*4 + 0x60]
cmp esi, ecx
je 0x528e9a
mov r8d, dword [rsp + r8*4 + 0x64]
add r8d, r11d
inc esi
movsxd rsi, esi
cmp rsi, 0x10
jae 0x528e93
lea rsi, [rsi + rsi*4]
mov dword [rsp + rsi*4 + 0x6c], r8d
inc ebx
jmp 0x528d91
call fcn.004293e0
ud2
mov rdx, rax
shl rax, 6
lea rax, [rsp + rax + 0x1a0]
mov edx, dword [rax + rdx*4]
cmp edi, edx
jne 0x528f45
mov rdx, qword [rsp + 0x5d0]
test byte [rdx], al
lea rbx, [rdx + 0x30]
test byte [rbx], al
lea esi, [rcx + 1]
movsxd rsi, esi
cmp rsi, 0x11
ja 0x528f3e
mov rdi, 1
test ecx, ecx
jle 0x528f0b
movsxd r8, ecx
cmp r8, 0x10
jae 0x528f37
mov r8d, dword [rax + r8*4]
dec ecx
movsxd r9, ecx
cmp r9, 0x10
jae 0x528f37
mov r9d, dword [rax + r9*4]
sub r8d, r9d
cmp rdi, rsi
jae 0x528f37
mov dword [rdx + rdi*4 + 0x30], r8d
inc rdi
test ecx, ecx
jg 0x528edb
mov qword [rsp + 0x5f8], rbx
mov qword [rsp + 0x600], rsi
mov qword [rsp + 0x608], 0x11
mov rbp, qword [rsp + 0x5c0]
add rsp, 0x5c8
ret
call fcn.004293e0
ud2
call fcn.00429450
ud2
lea rax, [0x006d90fc]
mov qword [rsp + 0x5a0], rax
mov qword [rsp + 0x5a8], 0x21
lea rax, [0x0066fb00]
mov qword [rsp], rax
lea rax, [rsp + 0x5a0]
mov qword [rsp + 8], rax
call fcn.0040ccd0
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov qword [rsp], rax
mov qword [rsp + 8], rcx
call fcn.0042a540
ud2
lea esi, [rbx - 1]
movsxd r8, esi
cmp r8, 0x10
jae 0x528fc3
lea r8, [r8 + r8*4]
mov r8d, dword [rsp + r8*4 + 0x70]
test r8d, r8d
jle 0x528d91
mov ebx, esi
lea esi, [rbx - 1]
movsxd r8, esi
cmp r8, 0x10
jb 0x528fa3
call fcn.004293e0
ud2
call fcn.004293e0
ud2
mov dword [rsp + r8*4 + 0x64], r10d
lea r10d, [rbx - 1]
movsxd r10, r10d
cmp r10, 0x10
jae 0x52906f
mov r12, rsi
shl rsi, 6
lea rsi, [rsp + rsi + 0x1a0]
mov qword [rsp], rsi
shl r10, 6
lea rsi, [rsp + r10 + 0x1a0]
mov qword [rsp + 8], rsi
shl r12, 2
mov qword [rsp + 0x10], r12
call fcn.00455480
mov rax, qword [rsp + 0x30]
mov ecx, dword [rsp + rax*4 + 0x60]
dec ecx
movsxd rcx, ecx
cmp rcx, 0x10
jae 0x529068
lea rsi, [rcx + rcx*4]
mov dword [rsp + rsi*4 + 0x70], 2
mov ecx, dword [rsp + 0x28]
mov rdx, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x2c]
mov rdi, qword [rsp + 0x5e0]
mov r8, rax
mov r9, qword [rsp + 0x5d8]
mov r11d, dword [rsp + 0x24]
mov rax, qword [rsp + 0x38]
jmp 0x528e50
call fcn.004293e0
ud2
call fcn.004293e0
ud2
call fcn.004293e0
ud2
call fcn.004293e0
ud2
call fcn.004293e0
ud2
call fcn.004293e0
ud2
mov ebx, eax
jmp 0x528c77
call fcn.004293e0
ud2
call fcn.00429450
ud2
lea rax, [0x006d5c54]
mov qword [rsp + 0x5b0], rax
mov qword [rsp + 0x5b8], 0x18
lea rax, [0x0066fb00]
mov qword [rsp], rax
lea rax, [rsp + 0x5b0]
mov qword [rsp + 8], rax
call fcn.0040ccd0
mov rax, qword [rsp + 0x18]
mov rcx, qword [rsp + 0x10]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
call fcn.0042a540
ud2
call fcn.00452210
jmp fcn.00528bd0