Function at 0x6646d0
Capabilities:
Reference http user-agent string
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x99504c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x14]
cmp eax, dword [ecx + 8]
jbe 0x665020
sub esp, 0x94
mov eax, 0
mov dword [esp + 0x90], eax
mov byte [esp + 0x1f], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov eax, dword [esp + 0x98]
movzx ecx, byte [eax + 0x59]
test cl, cl
jne 0x6648f4
lea eax, [0x72ad00]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [0x995310]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x664763
mov eax, dword [esp + 0x9c]
jmp 0x664771
call fcn.00468e60
mov eax, dword [esp + 0x9c]
mov dword [edi], eax
mov dword [esp + 0x24], ecx
mov dword [ecx], eax
lea edx, [0x6f47e0]
mov dword [esp], edx
call fcn.0040c500
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 0x60]
test ecx, ecx
jne 0x664798
mov ecx, 0x1000000
mov eax, dword [esp + 4]
mov dword [esp + 0x3c], eax
mov dword [eax], ecx
lea ecx, [0x6f4520]
mov dword [esp], ecx
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [esp + 0x38], eax
lea ecx, [0x6fe9e0]
mov dword [esp], ecx
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [esp + 0x40], eax
mov dword [eax], 0
mov dword [eax + 4], 0
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx + 0x5c]
nop
mov byte [edx + 0x2c], 1
mov ebx, dword [ecx + 0x60]
nop
nop
test ebx, ebx
jne 0x6647f8
mov ebx, 0x1000000
mov dword [esp + 0x28], edx
nop
mov dword [edx + 0x30], ebx
lea eax, [0x71f740]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
lea ecx, [0x665280]
mov dword [eax], ecx
mov ecx, dword [0x995310]
test ecx, ecx
jne 0x66483d
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
jmp 0x66486e
call fcn.00468eb0
mov ecx, dword [esp + 0x98]
mov dword [edi], ecx
mov edx, dword [esp + 0x40]
mov dword [edi + 4], edx
mov ebx, dword [esp + 0x38]
mov dword [edi + 8], ebx
mov ebp, dword [esp + 0x28]
mov dword [edi + 0xc], ebp
mov esi, dword [esp + 0x3c]
mov dword [edi + 0x10], esi
mov esi, dword [esp + 0x24]
mov dword [edi + 0x14], esi
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebp
mov ebx, dword [esp + 0x3c]
mov dword [eax + 0x14], ebx
mov dword [eax + 0x18], esi
mov edi, dword [0x995310]
test edi, edi
je 0x6648a2
call fcn.00468e70
mov dword [edi], eax
mov ecx, dword [ebp + 0x28]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x98]
mov dword [ebp + 0x28], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
lea eax, [0x665230]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ebp
lea eax, [0x758acc]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x5c]
mov dword [esp + 0x90], eax
mov byte [esp + 0x1f], 1
lea eax, [0x7b1df4]
mov edi, dword [esp + 0x9c]
jmp 0x664950
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x35
lea ecx, [0x74ed99]
mov dword [eax], ecx
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x7b0bb8]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x94
ret
mov edi, dword [esp + 8]
lea eax, [0x7b1e0c]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], eax
mov ecx, dword [eax + 0x10]
mov dword [esp], edi
call ecx
mov eax, dword [esp + 8]
mov ecx, eax
sar eax, 0x1f
mov edx, dword [esp + 0x3c]
mov ebx, dword [edx]
shl ebx, 1
test eax, eax
sete al
xchg ebp, ebx
setg bl
xchg ebp, ebx
cmp ecx, ebx
seta cl
and eax, ecx
or ebp, eax
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x664f52
mov ecx, dword [esp + 0x40]
mov ebx, dword [ecx]
test ebx, ebx
jne 0x664e65
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00653560
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x664e1c
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0x2c]
mov dword [esp], ecx
call eax
movzx eax, byte [esp + 4]
test al, al
jne 0x664a40
mov eax, dword [esp + 0x98]
mov dword [esp], eax
call fcn.00660ee0
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x6649fd
mov eax, dword [esp + 4]
lea ecx, [0x7b1dc4]
cmp eax, ecx
je 0x664946
jmp 0x664ff7
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
mov byte [esp + 0x1f], 0
mov edx, dword [esp + 0x90]
mov eax, dword [edx]
call eax
add esp, 0x94
ret
mov ecx, dword [esp + 0x24]
mov ebx, dword [ecx]
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
mov ebp, dword [0x995310]
test ebp, ebp
je 0x664a68
mov ebp, dword [ebx + 0x14]
call fcn.00468e60
mov dword [edi], ebp
mov dword [ebx + 0x14], 0
mov ebx, dword [ecx]
mov byte [ebx], 0
mov ebx, dword [esp + 0x28]
mov ebp, dword [ebx + 0x44]
sub ebp, dword [ebx + 0x4c]
test ebp, ebp
jle 0x664a9d
nop
mov dword [ebx + 0x44], 0
mov dword [ebx + 0x4c], 0
mov byte [ebx + 0x50], 0
lea eax, [0x7b1330]
jmp 0x664aa3
mov byte [ebx + 0x54], 1
xor eax, eax
test eax, eax
jne 0x664dd7
mov edx, dword [esp + 0x40]
mov ebx, dword [edx]
test ebx, ebx
je 0x664c25
mov ebp, dword [edx + 4]
mov esi, dword [esp + 0x98]
mov dword [esi + 0x10], ebx
mov ebx, dword [0x995310]
test ebx, ebx
je 0x664add
call fcn.00468e70
mov dword [edi], ebp
mov ebx, dword [esi + 0x14]
mov dword [edi + 4], ebx
mov dword [esi + 0x14], ebp
movzx ebx, byte [0x994f21]
test bl, bl
je 0x664b8c
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov ebx, dword [edx]
test ebx, ebx
je 0x664b08
mov ebx, dword [ebx + 4]
mov ecx, dword [edx + 4]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ecx
lea edi, [esp + 0x78]
xor eax, eax
call fcn.004690fa
lea ecx, [0x6650b0]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x80], 0x19
lea ecx, [0x742f9e]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x88], 1
mov dword [esp + 0x8c], 1
lea ecx, [esp + 0x4c]
mov dword [esp + 0x84], ecx
mov ecx, dword [0x96e848]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 2
lea ecx, [esp + 0x78]
mov dword [esp + 0xc], ecx
call fcn.004e25d0
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov eax, dword [ecx]
mov eax, dword [eax + 8]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 1
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
lea eax, [0x724940]
mov dword [esp], eax
lea eax, [esp + 0x68]
mov dword [esp + 4], eax
call fcn.00409b00
mov eax, dword [esp + 8]
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x7b11a0]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
mov byte [esp + 0x1f], 0
mov edx, dword [esp + 0x90]
mov eax, dword [edx]
call eax
add esp, 0x94
ret
mov dword [esp], ecx
call fcn.006643e0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
test eax, eax
je 0x664d92
mov edx, dword [esp + 4]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x98]
mov dword [ebp + 0x10], edx
mov esi, dword [0x995310]
test esi, esi
je 0x664c66
call fcn.00468e70
mov dword [edi], ebx
mov esi, dword [ebp + 0x14]
mov dword [edi + 4], esi
mov dword [ebp + 0x14], ebx
movzx ebp, byte [0x994f21]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x664d1a
mov dword [esp + 0x34], edx
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
test ecx, ecx
je 0x664c95
mov ecx, dword [ecx + 4]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], ebx
lea edi, [esp + 0x78]
xor eax, eax
call fcn.004690fa
lea ecx, [0x665030]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x80], 0x21
lea ecx, [0x7474c9]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x88], 1
mov dword [esp + 0x8c], 1
lea ecx, [esp + 0x44]
mov dword [esp + 0x84], ecx
mov ecx, dword [0x96e848]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 2
lea ecx, [esp + 0x78]
mov dword [esp + 0xc], ecx
call fcn.004e25d0
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 1
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ebx
lea eax, [0x724940]
mov dword [esp], eax
lea eax, [esp + 0x68]
mov dword [esp + 4], eax
call fcn.00409b00
mov eax, dword [esp + 8]
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x7b11a0]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
mov byte [esp + 0x1f], 0
mov edx, dword [esp + 0x90]
mov eax, dword [edx]
call eax
add esp, 0x94
ret
lea eax, [0x7b1cd4]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov byte [esp + 0x1f], 0
mov edx, dword [esp + 0x90]
mov eax, dword [edx]
call eax
add esp, 0x94
ret
lea eax, [0x7b1cd4]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], ecx
lea eax, [0x7b118c]
mov dword [esp + 0xa8], eax
lea eax, [0x7ae8f0]
mov dword [esp + 0xac], eax
mov byte [esp + 0x1f], 0
mov edx, dword [esp + 0x90]
mov eax, dword [edx]
call eax
add esp, 0x94
ret
lea eax, [0x7b1cd4]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xa4], eax
lea eax, [0x7b118c]
mov dword [esp + 0xa8], eax
lea eax, [0x7ae8f0]
mov dword [esp + 0xac], eax
mov byte [esp + 0x1f], 0
mov edx, dword [esp + 0x90]
mov eax, dword [edx]
call eax
add esp, 0x94
ret
movzx ebx, byte [0x994f21]
test bl, bl
je 0x664f09
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov edx, dword [ecx]
test edx, edx
je 0x664e8d
mov edx, dword [edx + 4]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], ecx
lea edi, [esp + 0x78]
xor eax, eax
call fcn.004690fa
lea ecx, [0x665130]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x80], 0x19
lea ecx, [0x742f9e]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x88], 1
mov dword [esp + 0x8c], 1
lea ecx, [esp + 0x54]
mov dword [esp + 0x84], ecx
mov ecx, dword [0x96e848]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 2
lea ecx, [esp + 0x78]
mov dword [esp + 0xc], ecx
call fcn.004e25d0
lea eax, [0x7b1cd4]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xa4], eax
lea eax, [0x7b118c]
mov dword [esp + 0xa8], eax
lea eax, [0x7affb4]
mov dword [esp + 0xac], eax
mov byte [esp + 0x1f], 0
mov edx, dword [esp + 0x90]
mov eax, dword [edx]
call eax
add esp, 0x94
ret
movzx ecx, byte [0x994f21]
test cl, cl
je 0x664fae
nop
lea edi, [esp + 0x78]
xor eax, eax
call fcn.004690fa
lea ecx, [0x6651b0]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x80], 0x1c
lea ecx, [0x74499a]
mov dword [esp + 0x7c], ecx
mov ecx, dword [0x96e848]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 2
lea ecx, [esp + 0x78]
mov dword [esp + 0xc], ecx
call fcn.004e25d0
lea eax, [0x7b1cd4]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xa4], eax
lea eax, [0x7b118c]
mov dword [esp + 0xa8], eax
lea eax, [0x7affb4]
mov dword [esp + 0xac], eax
mov byte [esp + 0x1f], 0
mov edx, dword [esp + 0x90]
mov eax, dword [edx]
call eax
add esp, 0x94
ret
mov ecx, dword [0x7b1dc8]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x7036e0]
mov dword [esp + 8], eax
call fcn.00409a60
nop
call fcn.00438090
add esp, 0x94
ret
call fcn.00467a60
jmp fcn.006646d0