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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x6fc21d9d
sub esp, 0x6c
mov eax, dword [esp + 0x70]
test byte [eax], al
nop
mov dword [esp], eax
call fcn.6fc099f0
mov eax, dword fs:[0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x70]
cmp dword [ecx + 4], eax
jne 0x6fc21d86
movsd xmm0, qword [0x6fede43c]
movsd xmm1, qword [esp + 0x74]
ucomisd xmm0, xmm1
jbe 0x6fc21a9e
movsd xmm1, qword [0x6fede43c]
movsd qword [esp + 0x60], xmm1
movsd xmm0, qword [ecx + 0x1c]
divsd xmm1, xmm0
movsd qword [esp], xmm1
call fcn.6fc5caa0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0x70]
mov ebx, dword [edx + 0x64]
mov ebp, dword [esp + 0xc]
test ebx, ebx
je 0x6fc21b07
mov dword [esp + 0x4c], eax
nop
nop
mov dword [esp], edx
call fcn.6fc09bf0
mov eax, dword [esp + 0x70]
mov edx, dword [eax + 0x64]
mov ecx, dword [edx]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp], ebx
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
jmp 0x6fc21c08
mov dword [esp + 0x48], ebp
nop
call fcn.6fc62e60
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp]
mov dword [esp + 0x2c], edx
mov ebx, dword [esp + 0x44]
add ebx, edx
mov ebp, dword [esp + 4]
mov dword [esp + 0x30], ebp
nop
mov esi, dword [ecx + 0xc]
mov edi, dword [ecx + 0x10]
mov edx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x54], eax
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x68], eax
mov eax, dword [ecx + 0x20]
mov dword [esp], ecx
mov ecx, dword [esp + 0x48]
adc ecx, ebp
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], esi
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
call fcn.6fc52ee0
mov eax, dword [esp + 0x70]
mov byte [eax + 8], 1
lea ecx, [0x6fe94884]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov word [esp + 8], 0x1313
mov dword [esp + 0xc], 2
call fcn.6fc39b40
call fcn.6fc62e60
mov eax, dword [esp]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x2c]
sub eax, ecx
mov dword [esp + 0x3c], eax
mov ebx, dword [esp + 4]
mov dword [esp + 0x34], ebx
nop
nop
mov ebp, dword [esp + 0x70]
mov dword [esp], ebp
call fcn.6fc099f0
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0xc]
mov dword [esp], ecx
call fcn.6fc52890
nop
nop
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call fcn.6fc09bf0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
sub eax, ecx
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
sbb ecx, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
mov ebx, dword [esp + 0x70]
mov ebp, dword [ebx + 0x58]
test ebp, ebp
xchg ebp, ebx
seta bl
xchg ebp, ebx
mov esi, dword [ebx + 0x5c]
test esi, esi
xchg esi, ebx
sete bl
xchg esi, ebx
xchg edi, ebx
setg bl
xchg edi, ebx
and esi, ebp
or edi, esi
xchg edi, eax
test al, al
xchg edi, eax
je 0x6fc21cae
movsd xmm0, qword [esp + 0x60]
movsd qword [esp], xmm0
call fcn.6fc5caa0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x3c]
add ecx, eax
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x40]
adc eax, edx
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x70]
mov ebx, dword [edx + 0x58]
cmp ecx, ebx
xchg ebp, ebx
seta bl
xchg ebp, ebx
mov esi, dword [edx + 0x5c]
cmp esi, eax
xchg edi, ebx
sete bl
xchg edi, ebx
setl al
and edi, ebp
or eax, edi
test al, al
je 0x6fc21c9c
mov dword [edx + 0x58], 0
mov dword [edx + 0x5c], 0
jmp 0x6fc21caa
sub ebx, ecx
mov dword [edx + 0x58], ebx
mov eax, dword [esp + 0x38]
sbb esi, eax
mov dword [edx + 0x5c], esi
add esp, 0x6c
ret
mov edx, dword [ebx + 0x70]
mov eax, dword [edx]
call eax
mov eax, dword [esp]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x40]
mov dword [esp + 4], ecx
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
call fcn.6fc5cb40
movsd xmm0, qword [esp + 8]
movsd qword [esp + 0x58], xmm0
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.6fc5cb40
mov eax, dword [esp + 0x70]
lea ecx, [eax + 0x24]
movsd xmm0, qword [esp + 8]
mov dword [esp], ecx
movsd xmm1, qword [esp + 0x58]
movsd xmm2, qword [esp + 0x60]
addsd xmm1, xmm2
mov ecx, dword [esp + 0x50]
cvtsi2sd xmm3, ecx
mulsd xmm1, xmm3
movsd xmm3, xmm2
divsd xmm2, xmm1
movsd qword [esp + 4], xmm2
movsd xmm1, qword [0x6fede36c]
movsd qword [esp + 0xc], xmm1
addsd xmm0, xmm3
movsd qword [esp + 0x14], xmm0
call fcn.6fc20c80
movzx eax, byte [esp + 0x24]
movsd xmm0, qword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
movsd qword [ecx + 0x1c], xmm0
test al, al
jne 0x6fc21d82
movsd xmm0, qword [0x6fede364]
movsd qword [ecx + 0x1c], xmm0
mov dword [ecx + 0x58], 0x2a05f200
mov dword [ecx + 0x5c], 1
mov dword [esp], ecx
call fcn.6fc21db0
add esp, 0x6c
ret
lea eax, [0x6fe8b21c]
mov dword [esp], eax
mov dword [esp + 4], 0x2f
call fcn.6fc36d90
nop
call fcn.6fc60ad0
jmp fcn.6fc21a40