Function at 0x66c080
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 - 0xb8]
cmp eax, dword [ecx + 8]
jbe 0x66ccf5
sub esp, 0x138
mov eax, 0
mov dword [esp + 0x134], eax
mov byte [esp + 0x23], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x148], 0
mov eax, dword [esp + 0x13c]
mov ecx, dword [eax + 4]
mov dword [esp + 0x30], ecx
mov edx, dword [eax]
mov dword [esp + 0x90], edx
mov ebx, dword [eax + 8]
mov dword [esp + 0x8c], ebx
mov ebp, dword [esp + 0x140]
mov dword [esp], ebp
call fcn.0066b2d0
mov eax, dword [esp + 4]
test eax, eax
jne 0x66c529
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0xbc]
test ecx, ecx
je 0x66ccd0
mov dword [esp + 0xb8], ecx
mov eax, dword [esp + 0x13c]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0xb4], ecx
mov edx, dword [esp + 0x30]
mov ebx, dword [edx + 0x14]
mov ebp, dword [esp + 0x8c]
mov dword [esp], ebp
call ebx
mov eax, dword [esp + 4]
mov dword [esp + 0xb0], eax
lea edi, [esp + 0xc4]
xor eax, eax
call fcn.004690fa
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xc4], ecx
lea ecx, [esp + 0x22]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0xcc], ecx
lea ecx, [esp + 0xc4]
mov dword [esp], ecx
lea ecx, [esp + 0x40]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 2
mov byte [esp + 0x14], 1
call fcn.0044b120
mov eax, dword [esp + 0x18]
test eax, eax
je 0x66c224
cmp eax, 1
jne 0x66c203
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x18]
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], ecx
add esp, 0x138
ret
mov eax, dword [0x9674c8]
mov ecx, dword [0x9674cc]
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], ecx
add esp, 0x138
ret
mov eax, dword [esp + 0x90]
lea ecx, [eax + 0x34]
mov dword [esp + 0xac], ecx
mov dword [esp], ecx
call fcn.00472830
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x30]
test ecx, ecx
je 0x66c269
mov edx, dword [ecx + 0x18]
nop
test edx, edx
je 0x66ccb8
lea eax, [ecx + 4]
mov dword [esp], eax
call fcn.004672b0
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x68]
nop
test ecx, ecx
jle 0x66c275
dec ecx
mov dword [eax + 0x68], ecx
mov dword [esp], eax
mov ecx, dword [esp + 0x13c]
mov dword [esp + 4], ecx
call fcn.0066d530
mov eax, dword [esp + 8]
test eax, eax
jne 0x66c4c4
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0xb8]
mov edx, dword [esp + 0x13c]
mov ebx, dword [edx + 0x94]
lea ebp, [ebx + ecx]
nop
cmp ecx, ebp
setl cl
test ebx, ebx
setg bl
cmp bl, cl
jne 0x66c2c6
mov dword [edx + 0x94], ebp
mov ecx, dword [0x995310]
lea ebx, [eax + 0x40]
test ecx, ecx
je 0x66c2e3
call fcn.00468e70
mov dword [edi], ebx
mov ecx, dword [edx + 0x98]
mov dword [edi + 4], ecx
mov dword [edx + 0x98], ebx
nop
mov dword [edx + 0x9c], 0x400000
mov ecx, dword [eax + 0x6c]
mov dword [edx + 0x14], ecx
add dword [eax + 0x6c], 2
mov ecx, dword [eax + 0x64]
mov ebx, dword [edx + 0x14]
lea ebp, [0x6f7fa0]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.0040f160
mov eax, dword [esp + 0xc]
test byte [eax], al
mov ecx, dword [0x995310]
test ecx, ecx
jne 0x66c333
mov ecx, dword [esp + 0x13c]
jmp 0x66c346
call fcn.00468e70
mov ecx, dword [esp + 0x13c]
mov dword [edi], ecx
mov edx, dword [eax]
mov dword [edi + 4], edx
mov dword [eax], ecx
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x66cca0
mov eax, dword [esp + 0x140]
mov dword [esp], eax
call fcn.00675250
movzx eax, byte [esp + 4]
test al, al
je 0x66c376
mov eax, dword [esp + 0x90]
mov byte [eax + 0x50], 1
mov eax, dword [esp + 0xac]
mov dword [esp], eax
call fcn.00472bb0
mov eax, dword [esp + 0x90]
mov ecx, dword [eax]
movzx edx, byte [ecx + 0x14]
test dl, dl
je 0x66c39d
xor ecx, ecx
jmp 0x66c41d
mov ecx, dword [ecx + 0x48]
test ecx, ecx
je 0x66c3b0
movzx ecx, byte [ecx + 0x6d]
test cl, cl
je 0x66c3b0
xor ecx, ecx
jmp 0x66c41d
mov eax, dword [esp + 0x140]
mov ecx, dword [eax + 0x1c]
mov dword [esp], ecx
lea ecx, [0x73df84]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xf
call fcn.00641610
mov eax, dword [esp + 0x10]
test eax, eax
je 0x66c3e7
mov eax, dword [esp + 0x90]
xor ecx, ecx
jmp 0x66c41d
mov eax, dword [esp + 0x140]
mov ecx, dword [eax + 0x1c]
mov dword [esp], ecx
lea ecx, [0x73ab48]
mov dword [esp + 4], ecx
mov dword [esp + 8], 5
call fcn.00641610
mov eax, dword [esp + 0x10]
test eax, eax
sete al
mov ecx, eax
mov eax, dword [esp + 0x90]
test cl, cl
je 0x66c436
mov ecx, dword [esp + 0x13c]
movzx edx, byte [ecx + 0x65]
test dl, dl
jne 0x66c43d
mov byte [ecx + 0x64], 1
jmp 0x66c43d
mov ecx, dword [esp + 0x13c]
mov edx, dword [eax]
mov edx, dword [edx + 0x48]
test edx, edx
je 0x66c454
mov ebx, dword [edx + 0x8c]
mov edx, dword [edx + 0x90]
jmp 0x66c458
xor edx, edx
xor ebx, ebx
test ebx, ebx
xchg ebp, ebx
setne bl
xchg ebp, ebx
test edx, edx
xchg esi, ebx
setne bl
xchg esi, ebx
or ebp, esi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x66c5f3
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x140]
mov ecx, dword [eax + 0x1c]
lea edx, [0x72ce00]
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ecx, [0x73ae49]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 6
call fcn.004109f0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov dword [esp + 0x78], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x2c], eax
xor edx, edx
jmp 0x66c555
mov eax, dword [esp + 8]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x88], ecx
mov edx, dword [esp + 0xac]
mov dword [esp], edx
call fcn.00472bb0
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 0xbc]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00405cc0
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x148], eax
add esp, 0x138
ret
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], ecx
add esp, 0x138
ret
mov ebx, dword [esp + 0x3c]
lea edx, [ebx + 1]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x78]
cmp edx, eax
jge 0x66c5e4
mov dword [esp + 0x3c], edx
lea eax, [ecx + edx*8]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], ebx
mov dword [esp + 4], eax
lea eax, [0x73cdce]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0xc
call fcn.006516e0
movzx eax, byte [esp + 0x10]
test al, al
je 0x66c546
lea eax, [0x6ee120]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00405010
mov eax, dword [0x995310]
mov ecx, dword [esp + 8]
test eax, eax
jne 0x66c5bd
mov eax, dword [esp + 0x13c]
jmp 0x66c5d4
call fcn.00468e70
mov dword [edi], ecx
mov eax, dword [esp + 0x13c]
mov edx, dword [eax + 0x88]
mov dword [edi + 4], edx
mov dword [eax + 0x88], ecx
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
jmp 0x66c5e8
xor eax, eax
xor ecx, ecx
mov edx, eax
mov ebx, ecx
mov ecx, dword [esp + 0x13c]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], edx
mov dword [esp], ecx
mov eax, dword [esp + 0x140]
mov dword [esp + 4], eax
call fcn.0066cd40
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], ecx
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0xbc]
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.00405cc0
mov eax, dword [esp + 0x144]
test eax, eax
jne 0x66ca3d
mov eax, dword [esp + 0x13c]
mov ecx, dword [eax + 0xbc]
mov ebx, dword [eax + 0xc0]
test ebx, ebx
setne bl
test ecx, ecx
setne cl
or ebx, ecx
test bl, bl
je 0x66c95c
mov ecx, dword [esp + 0x38]
test ecx, ecx
setne bl
mov ebp, dword [esp + 0x34]
test ebp, ebp
xchg esi, ebx
setne bl
xchg esi, ebx
or esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
je 0x66c8ae
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x66c6b3
mov edx, dword [ebx + 0x38]
test edx, edx
je 0x66c6b3
mov eax, dword [edx]
call eax
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x34]
mov dword [esp + 4], ecx
mov dword [esp], ebp
call fcn.00489af0
mov eax, dword [esp + 8]
mov dword [esp + 0x7c], eax
mov ecx, dword [eax]
mov dword [esp + 0xa4], ecx
mov edx, dword [esp + 0x13c]
mov ebx, dword [edx + 0x88]
mov dword [esp + 0xa0], ebx
mov ebp, dword [edx + 0x74]
mov dword [esp + 0x9c], ebp
mov esi, dword [esp + 0x30]
mov edi, dword [esi + 0x14]
mov esi, dword [esp + 0x8c]
mov dword [esp], esi
call edi
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x13c]
mov edx, dword [ecx + 0xc]
lea edi, [esp + 0xdc]
mov ebx, eax
xor eax, eax
call fcn.004690f6
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xfc], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0xf4], ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0xec], ecx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xdc], edx
lea ecx, [esp + 0xdc]
mov dword [esp], ecx
lea ecx, [esp + 0x4c]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 5
mov byte [esp + 0x14], 1
call fcn.0044b120
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x66c7b9
mov eax, dword [0x9674c8]
mov ecx, dword [0x9674cc]
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], ecx
mov eax, dword [esp + 0x13c]
jmp 0x66c853
cmp eax, 1
je 0x66c823
cmp eax, 2
jne 0x66c7e0
mov eax, dword [esp + 0x13c]
mov ecx, dword [eax + 0x78]
mov edx, dword [eax + 0x7c]
mov dword [esp + 0x144], ecx
mov dword [esp + 0x148], edx
jmp 0x66c853
cmp eax, 3
jne 0x66c804
mov dword [esp + 0x144], 0
mov dword [esp + 0x148], 0
mov eax, dword [esp + 0x13c]
jmp 0x66c853
mov dword [esp + 0x144], 0
mov dword [esp + 0x148], 0
mov eax, dword [esp + 0x13c]
jmp 0x66c853
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x8c]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], ecx
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x7c]
mov edx, dword [ecx + 0x18]
nop
test edx, edx
je 0x66cc88
lea eax, [ecx + 4]
mov dword [esp], eax
call fcn.004672b0
mov eax, dword [esp + 0x144]
test eax, eax
je 0x66c8a7
mov ecx, dword [esp + 0x13c]
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x66c8a0
mov edx, dword [ecx + 0x3c]
test edx, edx
je 0x66c8a0
mov ecx, dword [esp + 0x148]
mov ebx, dword [edx]
mov dword [esp], eax
mov dword [esp + 4], ecx
call ebx
add esp, 0x138
ret
mov eax, dword [esp + 0x13c]
mov dword [esp], eax
mov ecx, dword [esp + 0x140]
mov dword [esp + 4], ecx
call fcn.0066d870
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 8]
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], ecx
test edx, edx
je 0x66c94c
cmp dword [0x9674d0], ebp
jne 0x66c917
mov eax, dword [0x9674d4]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call fcn.00404290
movzx eax, byte [esp + 0xc]
test al, al
je 0x66c917
mov eax, dword [esp + 0x13c]
jmp 0x66c963
mov eax, dword [esp + 0x13c]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x66c945
mov edx, dword [eax + 0x3c]
test edx, edx
je 0x66c945
mov eax, dword [esp + 0x144]
mov ecx, dword [esp + 0x148]
mov ebx, dword [edx]
mov dword [esp], eax
mov dword [esp + 4], ecx
call ebx
add esp, 0x138
ret
mov eax, dword [esp + 0x13c]
mov byte [eax + 0xc8], 1
jmp 0x66c963
mov byte [eax + 0xc8], 1
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x66c991
mov edx, dword [ecx + 0x3c]
test edx, edx
je 0x66c991
mov eax, dword [esp + 0x144]
mov ecx, dword [esp + 0x148]
mov ebx, dword [edx]
mov dword [esp], eax
mov dword [esp + 4], ecx
call ebx
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x90]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x48]
test ecx, ecx
je 0x66c9af
mov edx, dword [ecx + 0x84]
mov ecx, dword [ecx + 0x88]
jmp 0x66c9b3
xor ecx, ecx
xor edx, edx
test ecx, ecx
setne bl
test edx, edx
xchg ebp, ebx
setne bl
xchg ebp, ebx
or ebx, ebp
mov byte [esp + 0x22], bl
test bl, bl
jne 0x66c9d1
xor ecx, ecx
xor edx, edx
jmp 0x66ca4f
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00489af0
mov eax, dword [esp + 8]
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
lea ecx, [0x66cd00]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], eax
lea ecx, [esp + 0xbc]
mov dword [esp + 0x134], ecx
mov byte [esp + 0x23], 1
mov eax, dword [eax]
mov ecx, dword [esp + 0x13c]
mov edx, dword [ecx + 0x8c]
movzx ebx, byte [esp + 0x22]
mov ecx, eax
mov eax, dword [esp + 0x13c]
jmp 0x66ca4f
add esp, 0x138
ret
mov eax, dword [esp + 0x13c]
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x80], ecx
mov ebx, dword [eax + 0x80]
mov dword [esp + 0x98], ebx
mov ebp, dword [eax + 0x74]
mov dword [esp + 0x94], ebp
mov esi, dword [esp + 0x30]
mov edi, dword [esi + 0x14]
mov esi, dword [esp + 0x8c]
mov dword [esp], esi
call edi
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x13c]
mov edx, dword [ecx + 0xc]
lea edi, [esp + 0x104]
mov ebx, eax
xor eax, eax
call fcn.004690f4
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x12c], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x124], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x11c], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x114], ecx
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x104], edx
lea ecx, [esp + 0x104]
mov dword [esp], ecx
lea ecx, [esp + 0x60]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 6
mov byte [esp + 0x14], 1
call fcn.0044b120
mov eax, dword [esp + 0x18]
test eax, eax
je 0x66cc4b
cmp eax, 1
je 0x66cbff
cmp eax, 2
je 0x66cbc1
cmp eax, 3
je 0x66ca44
cmp eax, 4
jne 0x66cb88
mov eax, dword [0x967498]
mov ecx, dword [0x96749c]
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], ecx
movzx eax, byte [esp + 0x22]
test al, 1
je 0x66cb81
and eax, 0xfffffffe
mov byte [esp + 0x23], al
mov edx, dword [esp + 0x134]
mov eax, dword [edx]
call eax
add esp, 0x138
ret
mov dword [esp + 0x144], 0
mov dword [esp + 0x148], 0
movzx eax, byte [esp + 0x22]
test al, 1
je 0x66cbba
and eax, 0xfffffffe
mov byte [esp + 0x23], al
mov edx, dword [esp + 0x134]
mov eax, dword [edx]
call eax
add esp, 0x138
ret
mov eax, dword [esp + 0x13c]
mov ecx, dword [eax + 0x78]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x144], ecx
mov dword [esp + 0x148], eax
movzx eax, byte [esp + 0x22]
test al, 1
je 0x66cbf8
and eax, 0xfffffffe
mov byte [esp + 0x23], al
mov edx, dword [esp + 0x134]
mov eax, dword [edx]
call eax
add esp, 0x138
ret
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x18]
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], ecx
movzx eax, byte [esp + 0x22]
test al, 1
je 0x66cc44
and eax, 0xfffffffe
mov byte [esp + 0x23], al
mov edx, dword [esp + 0x134]
mov eax, dword [edx]
call eax
add esp, 0x138
ret
mov eax, dword [0x9674c8]
mov ecx, dword [0x9674cc]
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], ecx
movzx eax, byte [esp + 0x22]
test al, 1
je 0x66cc81
and eax, 0xfffffffe
mov byte [esp + 0x23], al
mov edx, dword [esp + 0x134]
mov eax, dword [edx]
call eax
add esp, 0x138
ret
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b020c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b0778]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b020c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b0770]
mov dword [esp + 4], eax
call fcn.00438b10
nop
call fcn.00438090
add esp, 0x138
ret
call fcn.00467a60
jmp fcn.0066c080