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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x18]
cmp eax, dword [ecx + 8]
jbe 0x6fcd1e9c
sub esp, 0x98
mov edx, dword [esp + 0xac]
lea ebx, [edx - 2]
cmp ebx, 0x3c
ja 0x6fcd1e83
mov ebx, dword [esp + 0xa0]
test ebx, ebx
je 0x6fcd1a58
nop
mov ebp, dword [esp + 0x9c]
mov esi, dword [ebp + ebx*4 - 4]
nop
cmp esi, 0x10000
jb 0x6fcd1921
shr esi, 0x10
mov eax, 0x10
jmp 0x6fcd1923
xor eax, eax
cmp esi, 0x100
jb 0x6fcd1931
shr esi, 8
add eax, 8
cmp esi, 0x100
jae 0x6fcd1e77
mov dword [esp + 0x58], eax
cvtsi2sd xmm0, edx
nop
lea eax, [0x6fe8f29b]
movzx eax, byte [eax + esi]
mov dword [esp + 0x70], eax
movsd qword [esp], xmm0
call fcn.6fc668a0
mov eax, dword [esp + 0xa0]
lea ecx, [eax - 1]
shl ecx, 5
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x58]
add edx, ebx
add ecx, edx
cvtsi2sd xmm0, ecx
divsd xmm0, qword [esp + 8]
cvttsd2si ecx, xmm0
lea edx, [ecx + 1]
movzx ebx, byte [esp + 0xa8]
test bl, bl
je 0x6fcd1997
lea edx, [ecx + 2]
mov dword [esp + 0x44], edx
lea eax, [0x6fe51840]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.6fc4adf0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xac]
mov edx, ecx
neg ecx
and ecx, edx
cmp edx, ecx
jne 0x6fcd1a41
mov ebx, edx
neg edx
and ebx, edx
imul ebx, ebx, 0x77cb531
shr ebx, 0x1b
lea ebp, [0x6fe02a60]
movzx ecx, byte [ebx + ebp]
mov dword [esp + 0x70], ecx
cmp ecx, 0x20
sbb ebx, ebx
mov dword [esp + 0x6c], ebx
nop
mov ebp, 1
shl ebp, cl
and ebp, ebx
dec ebp
mov dword [esp + 0x34], ebp
mov esi, dword [esp + 0x9c]
mov edi, dword [esi]
nop
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x68], eax
mov dword [esp + 0x7c], ecx
mov ecx, 1
mov dword [esp + 0x48], ecx
mov ecx, 0x20
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x7c]
jmp 0x6fcd1c78
nop
mov ecx, eax
mov eax, 0xffffffff
mov ebx, edx
xor edx, edx
div ebx
mov edx, ebx
mov ebp, 1
jmp 0x6fcd1a95
lea eax, [0x6fe4d460]
mov dword [esp], eax
call fcn.6fc0ba30
mov eax, dword [esp + 4]
mov byte [eax], 0x30
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], 1
mov dword [esp + 0xb8], 1
add esp, 0x98
ret
imul ebx, edx
inc ebp
cmp ebx, eax
jbe 0x6fcd1a91
mov dword [esp + 0x94], ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebp
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
call fcn.6fcd26a0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x50], edx
nop
mov ebx, dword [esp + 0xa0]
cmp ebx, 1
jne 0x6fcd1b19
lea eax, [0x6fe50f00]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.6fc4adf0
mov eax, dword [esp + 0xc]
mov ecx, 1
mov edx, 1
jmp 0x6fcd1b45
lea eax, [0x6fe50f00]
mov dword [esp], eax
mov dword [esp + 4], ebx
lea eax, [ebx + 4]
mov dword [esp + 0x30], eax
mov dword [esp + 8], eax
call fcn.6fc4adf0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0xa0]
cmp ebx, ecx
jl 0x6fcd1b52
mov ebx, ecx
mov ebp, dword [esp + 0x9c]
cmp ebp, eax
je 0x6fcd1b8e
mov dword [esp + 0x60], edx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x90], eax
mov dword [esp], eax
mov dword [esp + 4], ebp
shl ebx, 2
mov dword [esp + 8], ebx
call fcn.6fc62890
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov eax, dword [esp + 0x94]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0xac]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x2c], edx
call fcn.6fcd1eb0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x94]
xor edx, edx
jmp 0x6fcd1bfb
inc edx
cmp eax, edx
jbe 0x6fcd1c63
lea ebx, [edx + ecx]
cmp byte [ebx], 0x30
je 0x6fcd1bfa
movzx ebx, byte [esp + 0xa8]
test bl, bl
je 0x6fcd1c21
lea ebx, [edx - 1]
cmp eax, ebx
jbe 0x6fcd1c5a
mov byte [edx + ecx - 1], 0x2d
jmp 0x6fcd1c23
mov ebx, edx
cmp eax, ebx
jb 0x6fcd1c51
sub eax, ebx
mov edx, eax
neg eax
sar eax, 0x1f
and ebx, eax
lea eax, [ebx + ecx]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], edx
add esp, 0x98
ret
mov ecx, eax
mov eax, ebx
call fcn.6fc61fe0
mov ecx, eax
mov eax, ebx
call fcn.6fc61f80
mov ecx, eax
mov eax, edx
call fcn.6fc61f80
inc esi
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x9c]
mov esi, dword [esp + 0x48]
cmp edx, esi
jg 0x6fcd1e09
jmp 0x6fcd1d6a
test edx, edx
jne 0x6fcd1cb9
mov edx, dword [esp + 0xa0]
cmp edx, esi
jbe 0x6fcd1e59
mov edi, dword [esp + 0x9c]
mov edi, dword [edi + esi*4]
mov dword [esp + 0x74], eax
mov eax, 0x20
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x74]
jmp 0x6fcd1c6c
mov ebx, dword [esp + 0xa0]
cmp ebx, esi
jbe 0x6fcd1e50
cmp edx, 0x20
sbb ebx, ebx
mov ebp, dword [esp + 0x9c]
mov ebp, dword [ebp + esi*4]
mov ecx, edx
shl ebp, cl
and ebp, ebx
or edi, ebp
mov ebx, dword [esp + 0x34]
and edi, ebx
cmp edi, 0x3e
jae 0x6fcd1e44
mov ebp, dword [esp + 0x68]
lea ebx, [ebp - 1]
lea esi, [0x6fe8d51b]
movzx edi, byte [esi + edi]
mov esi, dword [esp + 0x44]
cmp esi, ebx
jbe 0x6fcd1e3b
xchg edi, ebx
mov byte [ebp + eax - 1], bl
xchg edi, ebx
mov ebp, dword [esp + 0x70]
mov edi, ebp
sub ebp, ecx
cmp ebp, 0x20
sbb edx, edx
mov dword [esp + 0x64], edx
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x9c]
mov edx, dword [edx + esi*4]
mov ecx, ebp
shr edx, cl
mov esi, dword [esp + 0x64]
and edx, esi
lea ebp, [ecx - 0x20]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov ecx, edi
mov esi, dword [esp + 0x48]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x40], ebp
mov edi, edx
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x34]
jmp 0x6fcd1c6c
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x68]
jmp 0x6fcd1d90
xchg edi, ebx
mov byte [esi + eax - 1], bl
xchg edi, ebx
mov edi, dword [esp + 0x54]
shr edi, cl
mov esi, dword [esp + 0x6c]
and edi, esi
mov ebx, esi
mov esi, ebp
mov ebp, dword [esp + 0x34]
test edi, edi
je 0x6fcd1db2
mov dword [esp + 0x54], edi
and edi, ebp
cmp edi, 0x3e
jae 0x6fcd1dd0
lea ebp, [esi - 1]
lea ebx, [0x6fe8d51b]
movzx edi, byte [ebx + edi]
cmp edx, ebp
ja 0x6fcd1d74
jmp 0x6fcd1dc7
movzx ebx, byte [esp + 0xa8]
test bl, bl
mov ecx, eax
mov eax, edx
mov edx, esi
jmp 0x6fcd1c11
mov eax, ebp
mov ecx, edx
call fcn.6fc61f80
mov eax, edi
mov ecx, 0x3e
call fcn.6fc61f90
xchg edi, ebx
mov byte [esi + eax - 1], bl
xchg edi, ebx
mov edi, dword [esp + 0x54]
shr edi, cl
and edi, ebx
mov esi, dword [esp + 0x40]
sub esi, ecx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x68], ebp
mov dword [esp + 0x40], esi
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
cmp edx, ecx
jb 0x6fcd1c89
mov dword [esp + 0x54], edi
and edi, ebp
cmp edi, 0x3e
jae 0x6fcd1e6b
mov esi, dword [esp + 0x68]
lea ebp, [esi - 1]
lea edx, [0x6fe8d51b]
movzx edi, byte [edx + edi]
mov edx, dword [esp + 0x44]
cmp edx, ebp
ja 0x6fcd1ddc
jmp 0x6fcd1e62
mov eax, ebx
mov ecx, esi
call fcn.6fc61f80
mov eax, edi
mov ecx, 0x3e
call fcn.6fc61f90
mov eax, esi
mov ecx, ebx
call fcn.6fc61f80
mov eax, esi
mov ecx, edx
call fcn.6fc61f80
mov eax, ebp
mov ecx, edx
call fcn.6fc61f80
mov eax, edi
mov ecx, 0x3e
call fcn.6fc61f90
mov eax, esi
mov ecx, 0x100
call fcn.6fc61f90
lea eax, [0x6fe514c0]
mov dword [esp], eax
lea eax, [0x6fede7ac]
mov dword [esp + 4], eax
call fcn.6fc36660
nop
call fcn.6fc60ad0
jmp fcn.6fcd18c0