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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x48]
cmp rax, qword [rcx + 0x10]
jbe 0x41e8ea
sub rsp, 0xc8
mov qword [rsp + 0xc0], rbp
lea rbp, [rsp + 0xc0]
xorps xmm0, xmm0
movups xmmword [rsp + 0x90], xmm0
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0xb0], xmm0
mov rdx, qword gs:[0x28]
mov rdx, qword [rdx]
mov qword [rsp + 0x88], rdx
mov rbx, qword [rdx + 0x30]
mov esi, dword [rbx + 0xd0]
test esi, esi
jne 0x41df1d
mov esi, dword [rbx + 0xb4]
test esi, esi
jne 0x41df1d
mov rbx, qword [rbx]
cmp rdx, rbx
jne 0x41e8cf
mov ebx, dword [0x0089de88]
mov dword [rsp + 0x30], ebx
mov rsi, qword [rsp + 0xd0]
movzx edi, byte [rsi + 0x64]
mov byte [rsp + 0x29], dil
cmp dil, 1
jne 0x41e810
mov r8d, dword [rsi + 0x58]
lea r9d, [rbx - 1]
mov dword [rsp + 0x34], r9d
cmp r8d, r9d
jne 0x41e810
movzx edi, byte [0x008a3ef0]
test dil, dil
jne 0x41e7ed
mov rdi, qword [rsi + 0x20]
lea r8, [0x0089df28]
lock xadd qword [r8], rdi
mov rdx, qword [rdx + 0x30]
lea rdi, [rsi + 0x90]
test byte [rdi], al
movzx r8d, byte [rsi + 0x62]
mov byte [rsp + 0x28], r8b
mov r10, qword [rsi + 0x68]
mov qword [rsp + 0x38], r10
mov rdx, qword [rdx + 0x120]
mov qword [rsp + 0x80], rdx
mov r11, qword [rsi + 0x90]
test r11, r11
je 0x41e018
movzx eax, word [r11 + 8]
test r10, r10
je 0x41e7e6
mov rcx, rdx
xor edx, edx
div r10
mov rdx, qword [rsi + 0x50]
mov r12, rax
shr rax, 3
lea r13, [rdx + rax]
test byte [r13], al
mov r13, r10
imul r10, r12
and r12, 7
mov r14, rcx
mov rcx, r12
mov r15d, 1
shl r15d, cl
movzx r12d, byte [rax + rdx]
test r12b, r15b
je 0x41e6e9
mov rdx, qword [r11]
mov r10, r13
mov rdi, r11
mov r11, rdx
mov rdx, r14
test r11, r11
jne 0x41dfb3
mov eax, dword [0x008b4440]
test eax, eax
je 0x41e129
mov rax, qword [rsi + 0x50]
mov qword [rsp + 0x90], rax
mov byte [rsp + 0x98], 1
mov qword [rsp + 0xa0], 0
mov rax, qword [rsi + 0x48]
mov qword [rsp + 0xa8], rax
mov byte [rsp + 0xb0], 1
mov qword [rsp + 0xb8], 0
xor eax, eax
mov qword [rsp + 0x48], rax
mov rcx, qword [rsi + 0x38]
cmp rax, rcx
jae 0x41e129
mov rcx, qword [rsp + 0x90]
movzx ecx, byte [rcx]
movzx edi, byte [rsp + 0x98]
test dil, cl
je 0x41e660
movzx ecx, byte [rsp + 0x98]
cmp cl, 0x80
jne 0x41e652
mov rcx, qword [rsp + 0x90]
inc rcx
mov qword [rsp + 0x90], rcx
mov byte [rsp + 0x98], 1
mov rcx, qword [rsp + 0xa0]
inc rcx
mov qword [rsp + 0xa0], rcx
movzx ecx, byte [rsp + 0xb0]
cmp cl, 0x80
jne 0x41e644
mov rcx, qword [rsp + 0xa8]
inc rcx
mov qword [rsp + 0xa8], rcx
mov byte [rsp + 0xb0], 1
mov rcx, qword [rsp + 0xb8]
inc rcx
mov qword [rsp + 0xb8], rcx
inc rax
mov qword [rsp + 0x48], rax
mov rcx, qword [rsi + 0x38]
cmp rax, rcx
jb 0x41e07a
mov qword [rsp], rsi
call fcn.00411e30
mov rax, qword [rsp + 8]
mov qword [rsp + 0x40], rax
movzx ecx, byte [rsp + 0x28]
test cl, cl
jne 0x41e635
test rax, rax
je 0x41e626
mov rdx, qword [rsp + 0xd0]
mov byte [rdx + 0x65], 1
mov ebx, 1
mov byte [rsp + 0x27], bl
mov rsi, qword [rdx + 0x38]
mov qword [rsp + 0x68], rsi
sub esi, eax
mov word [rsp + 0x2c], si
movzx r8d, word [rdx + 0x60]
mov word [rsp + 0x2e], r8w
mov r9d, r8d
sub r8d, esi
mov word [rsp + 0x2a], r8w
cmp si, r9w
ja 0x41e51c
mov word [rdx + 0x60], si
mov qword [rsp], rdx
call fcn.00410b90
mov rax, qword [rsp + 8]
mov qword [rsp + 0x68], rax
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rcx + 0x38]
mov qword [rsp + 0x60], rdx
mov qword [rcx + 0x30], 0
mov rbx, qword [rcx + 0x50]
mov esi, dword [0x008b4340]
lea rdi, [rcx + 0x48]
test esi, esi
jne 0x41e4f7
mov qword [rcx + 0x48], rbx
mov rbx, qword [rcx + 0x38]
mov qword [rsp], rbx
call fcn.004231a0
mov rax, qword [rsp + 8]
mov ecx, dword [0x008b4340]
mov rdx, qword [rsp + 0xd0]
lea rbx, [rdx + 0x50]
test ecx, ecx
jne 0x41e4dc
mov qword [rdx + 0x50], rax
mov qword [rsp], rdx
mov qword [rsp + 8], 0
call fcn.00410b70
movzx eax, byte [rsp + 0x27]
test al, al
je 0x41e4bd
mov rcx, qword [rsp + 0xd0]
movzx edx, byte [rcx + 0x64]
mov byte [rsp + 0x29], dl
cmp dl, 1
jne 0x41e3fe
mov ebx, dword [rcx + 0x58]
mov esi, dword [rsp + 0x34]
cmp ebx, esi
jne 0x41e3fe
mov edx, dword [rsp + 0x30]
mov ebx, edx
xchg dword [rcx + 0x58], edx
movzx edx, word [rsp + 0x2a]
test dx, dx
jbe 0x41e3f7
movzx esi, byte [rsp + 0x28]
test sil, sil
je 0x41e364
mov rax, qword [rsp + 0x80]
test byte [rax], al
movzx esi, sil
cmp rsi, 0x43
jae 0x41e35d
mov rdi, qword [rax + rsi*8 + 0x278]
movzx edx, dx
add rdx, rdi
mov qword [rax + rsi*8 + 0x278], rdx
imul rsi, rsi, 0x70
lea rax, [0x0089ce60]
lea rax, [rax + rsi + 0x1330]
mov qword [rsp], rax
mov qword [rsp + 8], rcx
movzx eax, byte [rsp + 0xd8]
mov byte [rsp + 0x10], al
mov rax, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
cmp rax, rdx
sete al
mov byte [rsp + 0x11], al
call fcn.004139f0
movzx eax, byte [rsp + 0x18]
mov byte [rsp + 0x25], al
test al, al
je 0x41e328
movzx ecx, byte [0x008a3ef0]
test cl, cl
jne 0x41e31c
mov byte [rsp + 0xe0], al
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
call fcn.00447fc0
movzx eax, byte [rsp + 0x25]
jmp 0x41e305
mov ecx, dword [rsp + 0x30]
shr ecx, 1
and ecx, 1
lea rcx, [rcx + rcx*4]
lea rdx, [0x0089dec0]
lea rcx, [rdx + rcx*8]
mov qword [rsp], rcx
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 8], rcx
call fcn.0041eb70
movzx eax, byte [rsp + 0x25]
jmp 0x41e2fa
call fcn.004293e0
ud2
test al, al
je 0x41e3f0
mov eax, dword [0x008b4448]
test eax, eax
jle 0x41e3d1
mov qword [rcx + 0x80], 0
mov rax, qword [rcx + 0x18]
mov qword [rsp], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 8], rax
call fcn.00414200
mov rax, qword [rsp + 0x80]
mov rcx, qword [rax + 0x270]
inc rcx
mov qword [rax + 0x270], rcx
mov rcx, qword [rax + 0x268]
mov rdx, qword [rsp + 0x38]
add rcx, rdx
mov qword [rax + 0x268], rcx
mov eax, 1
jmp 0x41e2f2
lea rax, [0x0089ce60]
mov qword [rsp], rax
mov qword [rsp + 8], rcx
mov dword [rsp + 0x10], 1
call fcn.00421800
jmp 0x41e398
xor eax, eax
jmp 0x41e2f2
test al, al
jmp 0x41e366
mov eax, dword [rcx + 0x58]
mov qword [rsp + 0x58], rax
call fcn.0042b850
lea rax, [0x006d3a49]
mov qword [rsp], rax
mov qword [rsp + 8], 0x13
call fcn.0042c220
movzx eax, byte [rsp + 0x29]
movzx eax, al
mov qword [rsp], rax
call fcn.0042c020
lea rax, [0x006d0b1b]
mov qword [rsp], rax
mov qword [rsp + 8], 0xa
call fcn.0042c220
mov rax, qword [rsp + 0x58]
mov qword [rsp], rax
call fcn.0042c020
lea rax, [0x006d2819]
mov qword [rsp], rax
mov qword [rsp + 8], 0x10
call fcn.0042c220
mov eax, dword [rsp + 0x30]
mov eax, eax
mov qword [rsp], rax
call fcn.0042c020
lea rax, [0x006cf2b1]
mov qword [rsp], rax
mov qword [rsp + 8], 1
call fcn.0042c220
call fcn.0042b8f0
lea rax, [0x006da8fe]
mov qword [rsp], rax
mov qword [rsp + 8], 0x27
call fcn.0042aea0
ud2
movzx ecx, word [rsp + 0x2a]
test cx, cx
je 0x41e231
mov rcx, qword [rsp + 0xd0]
mov ebx, dword [rsp + 0x30]
jmp 0x41e262
mov qword [rsp], rbx
mov qword [rsp + 8], rax
call fcn.00410240
mov rdx, qword [rsp + 0xd0]
jmp 0x41e212
mov qword [rsp], rdi
mov qword [rsp + 8], rbx
call fcn.00410240
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0x60]
jmp 0x41e1e2
call fcn.0042b850
lea rax, [0x006d2d89]
mov qword [rsp], rax
mov qword [rsp + 8], 0x10
call fcn.0042c220
mov rax, qword [rsp + 0x68]
mov qword [rsp], rax
call fcn.0042c020
lea rax, [0x006cfeab]
mov qword [rsp], rax
mov qword [rsp + 8], 7
call fcn.0042c220
mov rax, qword [rsp + 0x40]
mov qword [rsp], rax
call fcn.0042c020
lea rax, [0x006d01fa]
mov qword [rsp], rax
mov qword [rsp + 8], 8
call fcn.0042c220
movzx eax, word [rsp + 0x2c]
movzx eax, ax
mov qword [rsp], rax
call fcn.0042c020
lea rax, [0x006d45e3]
mov qword [rsp], rax
mov qword [rsp + 8], 0x15
call fcn.0042c220
movzx eax, word [rsp + 0x2e]
movzx eax, ax
mov qword [rsp], rax
call fcn.0042c020
lea rax, [0x006d020a]
mov qword [rsp], rax
mov qword [rsp + 8], 8
call fcn.0042c220
movzx eax, word [rsp + 0x2a]
movzx eax, ax
mov qword [rsp], rax
call fcn.0042c020
lea rax, [0x006cf2b1]
mov qword [rsp], rax
mov qword [rsp + 8], 1
call fcn.0042c220
call fcn.0042b8f0
lea rax, [0x006d8d4b]
mov qword [rsp], rax
mov qword [rsp + 8], 0x20
call fcn.0042aea0
ud2
mov rdx, qword [rsp + 0xd0]
xor ebx, ebx
jmp 0x41e163
mov rdx, qword [rsp + 0xd0]
xor ebx, ebx
jmp 0x41e163
shl ecx, 1
mov byte [rsp + 0xb0], cl
jmp 0x41e101
shl ecx, 1
mov byte [rsp + 0x98], cl
jmp 0x41e0c2
mov rcx, qword [rsi + 0x30]
mov rdi, qword [rsp + 0xb8]
cmp rdi, rcx
jae 0x41e6cb
mov rcx, qword [rsi + 0x18]
mov rdi, qword [rsi + 0x68]
imul rdi, rax
add rcx, rdi
mov edi, dword [0x008b4440]
test edi, edi
jne 0x41e68f
jmp 0x41e096
mov qword [rsp], rcx
mov qword [rsp + 8], r10
call fcn.004244a0
mov rax, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x80]
mov ebx, dword [rsp + 0x30]
mov rsi, qword [rsp + 0xd0]
movzx r8d, byte [rsp + 0x28]
mov r9d, dword [rsp + 0x34]
mov r10, qword [rsp + 0x38]
jmp 0x41e096
mov rcx, qword [rsp + 0xa8]
movzx ecx, byte [rcx]
movzx edi, byte [rsp + 0xb0]
test dil, cl
je 0x41e096
jmp 0x41e671
add r10, r13
mov qword [rsp + 0x50], r10
mov rcx, r11
test r11, r11
je 0x41e726
movzx r14d, word [r11 + 8]
cmp r14, r10
jae 0x41e7df
movzx r14d, byte [r11 + 0xa]
cmp r14b, 1
je 0x41e7ce
mov r11, qword [r11]
mov r14, qword [rsp + 0x80]
test r11, r11
jne 0x41e6f9
xor eax, eax
mov byte [rsp + 0x26], al
mov qword [rsp + 0x70], rdi
test rcx, rcx
je 0x41e768
movzx edx, word [rcx + 8]
cmp rdx, r10
jae 0x41e768
mov r11, qword [rsi + 0x18]
add rdx, r11
movzx r11d, byte [rcx + 0xa]
cmp r11b, 1
je 0x41e77b
test al, al
je 0x41e77b
mov rdx, qword [rcx]
mov rdi, rcx
mov rcx, rdx
mov qword [rsp + 0x70], rdi
test rcx, rcx
jne 0x41e736
mov r14, qword [rsp + 0x80]
mov rdx, rcx
mov r11, rdi
jmp 0x41e007
mov r11, qword [rcx]
mov qword [rsp + 0x78], r11
mov qword [rdi], r11
mov qword [rsp], rcx
mov rcx, rdx
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], r13
call fcn.00423020
movzx eax, byte [rsp + 0x26]
mov ebx, dword [rsp + 0x30]
mov rsi, qword [rsp + 0xd0]
movzx r8d, byte [rsp + 0x28]
mov r9d, dword [rsp + 0x34]
mov r10, qword [rsp + 0x50]
mov r13, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
jmp 0x41e758
or r12d, r15d
mov byte [rax + rdx], r12b
mov eax, 1
jmp 0x41e728
xor eax, eax
jmp 0x41e728
call fcn.004294c0
ud2
call fcn.00447f50
mov rdx, qword [rsp + 0x88]
mov ebx, dword [rsp + 0x30]
mov rsi, qword [rsp + 0xd0]
mov r9d, dword [rsp + 0x34]
jmp 0x41df68
mov eax, dword [rsi + 0x58]
mov qword [rsp + 0x58], rax
call fcn.0042b850
lea rax, [0x006d3a49]
mov qword [rsp], rax
mov qword [rsp + 8], 0x13
call fcn.0042c220
movzx eax, byte [rsp + 0x29]
movzx eax, al
mov qword [rsp], rax
call fcn.0042c020
lea rax, [0x006d0b1b]
mov qword [rsp], rax
mov qword [rsp + 8], 0xa
call fcn.0042c220
mov rax, qword [rsp + 0x58]
mov qword [rsp], rax
call fcn.0042c020
lea rax, [0x006d2819]
mov qword [rsp], rax
mov qword [rsp + 8], 0x10
call fcn.0042c220
mov eax, dword [rsp + 0x30]
mov eax, eax
mov qword [rsp], rax
call fcn.0042c020
lea rax, [0x006cf2b1]
mov qword [rsp], rax
mov qword [rsp + 8], 1
call fcn.0042c220
call fcn.0042b8f0
lea rax, [0x006d6d52]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1b
call fcn.0042aea0
ud2
lea rax, [0x006d72da]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1c
call fcn.0042aea0
ud2
call fcn.00452210
jmp fcn.0041de90