Function at 0x6fc6f520
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 0x6fc6fc7e
sub esp, 0x98
mov ecx, dword [esp + 0xb0]
lea edx, [ecx - 2]
cmp edx, 0x22
ja 0x6fc6fc65
mov dword [esp + 0x53], 0
lea edi, [esp + 0x54]
xor eax, eax
call fcn.6fc62190
movzx ecx, byte [esp + 0xb4]
test cl, cl
je 0x6fc6f58b
mov edx, dword [esp + 0xa8]
sub eax, edx
mov edx, 0
mov ebx, dword [esp + 0xac]
sbb edx, ebx
jmp 0x6fc6f599
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0xb0]
cmp ebx, 0xa
jne 0x6fc6f5af
mov ebx, 0x41
jmp 0x6fc6f9c7
lea ebp, [ebx - 1]
test ebx, ebp
jne 0x6fc6f5fa
mov ebp, ebx
neg ebx
and ebx, ebp
imul ebx, ebx, 0x77cb531
shr ebx, 0x1b
lea esi, [0x6fe02a60]
movzx ebx, byte [esi + ebx]
and ebx, 7
nop
mov esi, ebp
sar ebp, 0x1f
mov dword [esp + 0x44], ebp
lea edi, [esi - 1]
mov dword [esp + 0x28], edi
nop
mov dword [esp + 0x48], eax
mov eax, 0x41
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x48]
jmp 0x6fc6f917
mov ebp, ebx
sar ebx, 0x1f
mov dword [esp + 0x44], ebx
mov esi, 0x41
jmp 0x6fc6f625
mov byte [esp + ebp + 0x52], dl
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0xb0]
mov edx, eax
mov eax, ecx
movzx ecx, byte [esp + 0xb4]
mov dword [esp + 0x20], esi
cmp edx, ebx
xchg edi, ebx
sete bl
xchg edi, ebx
cmp ebp, eax
xchg esi, ebx
setbe bl
xchg esi, ebx
cmp edx, ebx
xchg ebp, ebx
seta bl
xchg ebp, ebx
and esi, edi
or ebp, esi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x6fc6f6ae
mov dword [esp + 0x40], eax
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 0xc], ebx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 8], ecx
call fcn.6fc5cd80
mov eax, dword [esp + 0x10]
mov ecx, eax
mov eax, dword [esp + 0xb0]
mul ecx
mov edx, dword [esp + 0x40]
sub edx, eax
mov eax, dword [esp + 0x14]
cmp edx, 0x24
jae 0x6fc6f898
mov ebp, dword [esp + 0x20]
lea esi, [ebp - 1]
lea edi, [0x6fe877a5]
movzx edx, byte [edi + edx]
cmp esi, 0x41
jb 0x6fc6f60a
jmp 0x6fc6f88c
cmp eax, 0x24
jae 0x6fc6f882
mov edx, dword [esp + 0x20]
lea ebx, [edx - 1]
lea ebp, [0x6fe877a5]
movzx ebp, byte [ebp + eax]
cmp ebx, 0x41
jae 0x6fc6f876
xchg ebp, eax
mov byte [esp + edx + 0x52], al
xchg ebp, eax
test cl, cl
je 0x6fc6f6ef
lea eax, [ebx - 1]
cmp eax, 0x41
jae 0x6fc6f86c
mov byte [esp + ebx + 0x52], 0x2d
jmp 0x6fc6f6f1
mov eax, ebx
movzx edx, byte [esp + 0xb5]
test dl, dl
je 0x6fc6f7ef
cmp eax, 0x41
ja 0x6fc6f862
mov ecx, dword [esp + 0xa0]
mov edx, ecx
sub ecx, eax
add ecx, 0x41
mov dword [esp + 0x3c], ecx
lea ebx, [eax - 0x41]
neg ebx
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and eax, ebx
lea eax, [esp + eax + 0x53]
mov ebx, dword [esp + 0xa4]
cmp ebx, ecx
jb 0x6fc6f742
mov esi, dword [esp + 0x9c]
jmp 0x6fc6f790
mov dword [esp + 0x38], ebp
mov dword [esp + 0x94], eax
lea eax, [0x6fe51840]
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
call fcn.6fc4af30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x38]
mov esi, eax
mov ebx, ecx
mov eax, dword [esp + 0x94]
mov dword [esp + 0x94], esi
mov dword [esp + 0x38], ebx
lea ecx, [esi + edx]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.6fc62890
mov eax, dword [esp + 0x94]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
add esp, 0x98
ret
cmp eax, 0x41
ja 0x6fc6f858
mov dword [esp], 0
lea ecx, [eax - 0x41]
neg ecx
mov edx, ecx
neg ecx
sar ecx, 0x1f
and eax, ecx
lea eax, [esp + eax + 0x53]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.6fc4e900
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
add esp, 0x98
ret
mov ecx, 0x41
call fcn.6fc61fe0
mov ecx, 0x41
call fcn.6fc61fe0
mov ecx, 0x41
call fcn.6fc61f80
mov eax, ebx
mov ecx, 0x41
call fcn.6fc61f80
mov ecx, 0x24
call fcn.6fc61f90
mov eax, esi
mov ecx, 0x41
call fcn.6fc61f80
mov eax, edx
mov ecx, 0x24
call fcn.6fc61f90
xchg edi, eax
mov byte [esp + ebp + 0x52], al
xchg edi, eax
lea ebp, [ebx - 0x20]
mov dword [esp + 0x34], ebp
cmp ebp, 0x20
sbb edi, edi
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb ecx, ecx
mov dword [esp + 0x30], ecx
mov ecx, ebx
mov edx, dword [esp + 0x40]
shr edx, cl
mov dword [esp + 0x2c], edx
mov ecx, ebp
mov edx, dword [esp + 0x40]
mov ebp, edx
shl edx, cl
mov ecx, dword [esp + 0x30]
and edx, ecx
mov ecx, ebx
shr eax, cl
or eax, edx
mov ecx, dword [esp + 0x34]
shr ebp, cl
and ebp, edi
or eax, ebp
mov ecx, dword [esp + 0xb0]
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
movzx ecx, byte [esp + 0xb4]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0xb0]
mov dword [esp + 0x40], edx
cmp edx, ebp
xchg ebp, ebx
seta bl
xchg ebp, ebx
sete dl
cmp esi, eax
xchg esi, ebx
setbe bl
xchg esi, ebx
and esi, edx
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
je 0x6fc6f95d
and edi, eax
cmp edi, 0x24
jae 0x6fc6f9a7
mov ebp, dword [esp + 0x20]
lea esi, [ebp - 1]
lea edx, [0x6fe877a5]
movzx edi, byte [edx + edi]
cmp esi, 0x41
jb 0x6fc6f8a4
jmp 0x6fc6f99b
cmp eax, 0x24
jae 0x6fc6f991
mov edx, dword [esp + 0x20]
lea ebx, [edx - 1]
lea ebp, [0x6fe877a5]
movzx ebp, byte [eax + ebp]
cmp ebx, 0x41
jae 0x6fc6f985
xchg ebp, eax
mov byte [esp + edx + 0x52], al
xchg ebp, eax
test cl, cl
jmp 0x6fc6f6da
mov eax, ebx
mov ecx, 0x41
call fcn.6fc61f80
mov ecx, 0x24
call fcn.6fc61f90
mov eax, esi
mov ecx, 0x41
call fcn.6fc61f80
mov eax, edi
mov ecx, 0x24
call fcn.6fc61f90
xchg ebp, eax
mov byte [esp + ebx + 0x52], al
xchg ebp, eax
mov ebx, edx
mov edx, eax
mov eax, ecx
movzx ecx, byte [esp + 0xb4]
test edx, edx
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg esi, ebx
seta bl
xchg esi, ebx
cmp eax, 0x3b9aca00
xchg edi, ebx
setae bl
xchg edi, ebx
and edi, ebp
or edi, esi
xchg edi, eax
test al, al
xchg edi, eax
je 0x6fc6fa76
mov dword [esp + 0x40], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x3b9aca00
call fcn.6fc5cd80
mov eax, dword [esp + 0x10]
mov ecx, eax
mov eax, 0x3b9aca00
mul ecx
mov edx, dword [esp + 0x40]
sub edx, eax
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov ebp, 4
jmp 0x6fc6fba8
mov ebp, edx
shl edx, 1
inc edx
cmp edx, 0xc8
jae 0x6fc6fc29
lea edx, [ebx - 1]
lea esi, [0x6fe8f1d3]
lea ebp, [esi + ebp*2 + 1]
movzx ebp, byte [ebp]
cmp edx, 0x41
jb 0x6fc6f9b3
jmp 0x6fc6fc1d
mov byte [esp + ebx + 0x51], dl
mov edx, dword [esp + 0x40]
mov ebx, eax
mov eax, edx
cmp eax, 0x64
jb 0x6fc6fae4
mov edx, eax
shr eax, 1
mov ebp, eax
mov eax, 0xa3d70a3e
mov esi, edx
mul ebp
shr edx, 5
imul ebp, edx, 0x64
sub esi, ebp
mov eax, esi
shl eax, 1
lea ebp, [eax + 1]
cmp ebp, 0xc8
jae 0x6fc6fb87
mov dword [esp + 0x40], edx
lea ebp, [ebx - 1]
lea edi, [0x6fe8f1d3]
lea edx, [edi + esi*2 + 1]
movzx edx, byte [edx]
cmp ebp, 0x41
jae 0x6fc6fb7b
mov byte [esp + ebx + 0x52], dl
cmp eax, 0xc8
jae 0x6fc6fb71
lea eax, [ebx - 2]
lea edx, [edi + esi*2]
movzx edx, byte [edx]
cmp eax, 0x41
jb 0x6fc6fa6a
jmp 0x6fc6fb67
mov edx, eax
shl eax, 1
lea ebp, [eax + 1]
cmp ebp, 0xc8
jae 0x6fc6fb5b
lea ebp, [ebx - 1]
lea esi, [0x6fe8f1d3]
lea edi, [esi + edx*2 + 1]
movzx edi, byte [edi]
cmp ebp, 0x41
jae 0x6fc6fb4f
xchg edi, eax
mov byte [esp + ebx + 0x52], al
xchg edi, eax
cmp edx, 0xa
jb 0x6fc6fb30
cmp eax, 0xc8
jae 0x6fc6fb45
lea eax, [ebx - 2]
lea edx, [esi + edx*2]
movzx edx, byte [edx]
cmp eax, 0x41
jae 0x6fc6fb3b
mov byte [esp + ebx + 0x51], dl
test cl, cl
jmp 0x6fc6fb34
test cl, cl
mov eax, ebp
mov ebx, eax
jmp 0x6fc6f6da
mov ecx, 0x41
call fcn.6fc61f80
mov ecx, 0xc8
call fcn.6fc61f90
mov eax, ebp
mov ecx, 0x41
call fcn.6fc61f80
mov eax, ebp
mov ecx, 0xc8
call fcn.6fc61f90
mov ecx, 0x41
call fcn.6fc61f80
mov ecx, 0xc8
call fcn.6fc61f90
mov eax, ebp
mov ecx, 0x41
call fcn.6fc61f80
mov eax, ebp
mov ecx, 0xc8
call fcn.6fc61f90
xchg esi, eax
mov byte [esp + ebx + 0x51], al
xchg esi, eax
mov esi, dword [esp + 0x24]
dec esi
mov edi, dword [esp + 0x34]
mov ebp, esi
mov ebx, edx
mov edx, edi
test ebp, ebp
jle 0x6fc6fa3a
mov esi, edx
shr edx, 1
mov edi, eax
mov eax, 0xa3d70a3e
mul edx
shr edx, 5
mov dword [esp + 0x34], edx
mov eax, edi
imul edi, edx, 0x64
sub esi, edi
mov edi, esi
shl esi, 1
lea edx, [esi + 1]
cmp edx, 0xc8
jae 0x6fc6fc59
mov dword [esp + 0x24], ebp
lea edx, [ebx - 1]
lea ebp, [0x6fe8f1d3]
lea ebp, [ebp + edi*2 + 1]
movzx ebp, byte [ebp]
cmp edx, 0x41
jae 0x6fc6fc4d
xchg ebp, eax
mov byte [esp + ebx + 0x52], al
xchg ebp, eax
cmp esi, 0xc8
jae 0x6fc6fc41
lea edx, [ebx - 2]
lea ebp, [0x6fe8f1d3]
lea esi, [ebp + edi*2]
movzx esi, byte [esi]
cmp edx, 0x41
jb 0x6fc6fb93
jmp 0x6fc6fc35
mov eax, edx
mov ecx, 0x41
call fcn.6fc61f80
mov eax, edx
mov ecx, 0xc8
call fcn.6fc61f90
mov eax, edx
mov ecx, 0x41
call fcn.6fc61f80
mov eax, esi
mov ecx, 0xc8
call fcn.6fc61f90
mov eax, edx
mov ecx, 0x41
call fcn.6fc61f80
mov eax, edx
mov ecx, 0xc8
call fcn.6fc61f90
lea eax, [0x6fe514c0]
mov dword [esp], eax
lea eax, [0x6fede6ac]
mov dword [esp + 4], eax
call fcn.6fc36660
nop
call fcn.6fc60ad0
jmp fcn.6fc6f520