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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x6fc6d1f7
sub esp, 0x4c
mov edx, dword [esp + 0x5c]
test edx, edx
jl 0x6fc6d1de
cmp edx, 9
jg 0x6fc6d1c6
mov ebx, dword [esp + 0x54]
test ebx, ebx
jne 0x6fc6cedc
mov eax, dword [esp + 0x50]
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
add esp, 0x4c
ret
cmp ebx, 0x10000
jb 0x6fc6cef0
mov ebp, ebx
shr ebx, 0x10
mov eax, 0x10
jmp 0x6fc6cef4
mov ebp, ebx
xor eax, eax
cmp ebx, 0x100
jb 0x6fc6cf02
shr ebx, 8
add eax, 8
cmp ebx, 0x100
jae 0x6fc6d1ba
lea esi, [0x6fe8f29b]
movzx ebx, byte [esi + ebx]
lea esi, [ebx + eax]
cmp esi, 0x19
jge 0x6fc6cf39
lea ecx, [ebx + eax - 0x19]
neg ecx
cmp ecx, 0x20
sbb eax, eax
shl ebp, cl
and ebp, eax
mov eax, dword [esp + 0x58]
lea eax, [esi + eax - 0x19]
jmp 0x6fc6cf3d
mov eax, dword [esp + 0x58]
imul ecx, eax, 0x13441
add ecx, 0x1ce618
sar ecx, 0x12
sub edx, ecx
mov dword [esp + 0x48], edx
lea ecx, [edx - 1]
cmp ecx, 0x1b
jg 0x6fc6cf65
test ecx, ecx
xchg esi, ebx
setge bl
xchg esi, ebx
jmp 0x6fc6cf67
xor esi, esi
mov dword [esp + 0x24], ecx
xchg esi, eax
mov byte [esp + 0x1a], al
xchg esi, eax
mov dword [esp + 0x2c], ebp
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.6fc6f080
mov ecx, dword [esp + 0x10]
movzx eax, byte [esp + 0x14]
mov edx, dword [esp + 0xc]
test ecx, ecx
jge 0x6fc6d1a2
mov dword [esp + 0x1c], edx
mov ebx, dword [esp + 0x48]
lea ebp, [ebx + 9]
cmp ebp, 0xa
jae 0x6fc6cfe6
mov ebp, dword [esp + 0x2c]
test ebp, ebp
xchg esi, ebx
sete bl
xchg esi, ebx
nop
and esi, 1
xchg esi, eax
test al, al
xchg esi, eax
jne 0x6fc6d0a7
mov byte [esp + 0x1b], al
mov esi, dword [esp + 0x24]
xchg esi, ebx
neg ebx
xchg esi, ebx
mov dword [esp + 0x28], esi
xor edi, edi
xor edi, edi
mov dword [esp + 0x30], edi
xor edi, edi
jmp 0x6fc6d0da
movzx ebp, byte [esp + 0x1a]
mov esi, ecx
neg ecx
cmp ecx, 0x20
sbb edi, edi
mov ebx, 1
shl ebx, cl
and ebx, edi
dec ebx
shr edx, cl
and edx, edi
mov edi, dword [esp + 0x1c]
and ebx, edi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x6fc6d049
lea ecx, [esi + 1]
neg ecx
cmp ecx, 0x20
sbb ebp, ebp
mov esi, 1
shl esi, cl
and esi, ebp
cmp esi, ebx
jb 0x6fc6d03e
jne 0x6fc6d045
test al, al
je 0x6fc6d03e
cmp esi, ebx
jne 0x6fc6d045
test al, al
je 0x6fc6d045
test edx, 1
setne cl
jmp 0x6fc6d061
mov ecx, 1
jmp 0x6fc6d061
xor ecx, ecx
jmp 0x6fc6d061
lea ecx, [esi + 1]
neg ecx
cmp ecx, 0x20
sbb ebp, ebp
mov esi, ebx
shr ebx, cl
and ebx, ebp
cmp ebx, 1
sete cl
mov ebx, esi
test ebx, ebx
je 0x6fc6d067
xor eax, eax
mov ebx, dword [esp + 0x50]
mov dword [esp], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], edx
xor eax, 1
mov byte [esp + 0xc], al
mov byte [esp + 0xd], cl
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x10], eax
call fcn.6fc6d860
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x48]
sub ecx, edx
inc ecx
mov dword [eax + 0x10], ecx
add esp, 0x4c
ret
mov eax, 1
mov ebp, 1
jmp 0x6fc6cfeb
mov eax, dword [esp + 0x20]
lea edi, [eax + 1]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
movzx eax, byte [esp + 0x1b]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x34]
cmp edi, esi
jge 0x6fc6d0a7
mov dword [esp + 0x20], edi
mov dword [esp + 0x2c], ebp
mov eax, 0xcccccccd
mov ebx, dword [esp + 0x30]
mul ebx
shr edx, 2
mov dword [esp + 0x44], edx
lea esi, [edx + edx*4]
sub ebx, esi
mov eax, ebx
mov esi, 0x33333333
mul esi
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], eax
mov eax, 0xcccccccd
mul ebp
shr edx, 2
mov eax, edx
add edx, 0
mov dword [esp + 0x38], edx
mov esi, dword [esp + 0x3c]
add edx, esi
lea edi, [eax + eax*4]
sub ebp, edi
add ebx, ebp
mov ebp, eax
mov eax, 0xcccccccd
mov edi, edx
mul ebx
shr edx, 2
mov dword [esp + 0x3c], edx
add edx, edi
mov dword [esp + 0x34], edx
mov eax, edx
mov ebx, 5
mul ebx
add ebp, 0
mov ebp, dword [esp + 0x44]
adc ebp, 0
mov ebx, dword [esp + 0x38]
add ebx, esi
mov ebx, dword [esp + 0x40]
adc ebp, ebx
mov ebx, dword [esp + 0x3c]
add ebx, edi
adc ebp, 0
mov ebx, dword [esp + 0x2c]
cmp eax, ebx
setne bl
lea esi, [ebp + ebp*4]
add edx, esi
mov esi, dword [esp + 0x30]
cmp esi, edx
setne dl
or edx, ebx
test dl, dl
je 0x6fc6d0b6
movzx eax, byte [esp + 0x1b]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x48]
jmp 0x6fc6cfe6
lea eax, [0x6fe514c0]
mov dword [esp], eax
lea eax, [0x6fede684]
mov dword [esp + 4], eax
call fcn.6fc36660
mov eax, ebx
mov ecx, 0x100
call fcn.6fc61f90
lea eax, [0x6fe514c0]
mov dword [esp], eax
lea eax, [0x6fede67c]
mov dword [esp + 4], eax
call fcn.6fc36660
lea eax, [0x6fe514c0]
mov dword [esp], eax
lea eax, [0x6fede674]
mov dword [esp + 4], eax
call fcn.6fc36660
nop
call fcn.6fc60ad0
jmp fcn.6fc6ce90