Function at 0x66d870
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 - 0xa8]
cmp eax, dword [ecx + 8]
jbe 0x66e2ca
sub esp, 0x128
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 0
mov eax, dword [esp + 0x12c]
mov ecx, dword [eax + 0xc0]
mov dword [esp + 0x38], ecx
mov edx, dword [eax]
mov dword [esp + 0xdc], edx
test byte [edx], al
mov ebx, dword [eax + 0xbc]
mov dword [esp + 0x34], ebx
lea ebp, [edx + 0x34]
mov dword [esp + 0xf8], ebp
mov esi, dword [eax + 0xb4]
mov dword [esp + 0x4c], esi
mov edi, dword [eax + 0xb8]
mov dword [esp + 0xe4], edi
mov edi, dword [esp + 0x130]
mov edi, dword [edi + 0x58]
mov dword [esp + 0xf4], edi
mov dword [esp], ebp
call fcn.00472830
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 0xa4]
mov dword [esp + 0x58], ecx
mov edx, dword [esp + 0xf8]
mov dword [esp], edx
call fcn.00472bb0
mov eax, dword [esp + 0x58]
mov ecx, eax
sar eax, 0x1f
mov edx, dword [esp + 0x38]
cmp edx, 0xffffffff
setne bl
mov ebp, dword [esp + 0x34]
cmp ebp, 0xffffffff
xchg esi, ebx
setne bl
xchg esi, ebx
or esi, ebx
xchg esi, eax
mov byte [esp + 0x2f], al
xchg esi, eax
test eax, eax
setg bl
xchg edi, ebx
sete bl
xchg edi, ebx
cmp ecx, 0x80000
xchg esi, ebx
seta bl
xchg esi, ebx
and esi, edi
or ebx, esi
test bl, bl
je 0x66d97a
xor eax, eax
mov ebx, 0x80000
jmp 0x66d97c
mov ebx, ecx
mov esi, dword [esp + 0x12c]
mov edi, dword [esi + 0xbc]
mov ecx, dword [esi + 0xc0]
cmp ecx, 0xffffffff
xchg esi, ebx
setne bl
xchg esi, ebx
cmp edi, 0xffffffff
setne dl
or edx, esi
test dl, dl
je 0x66d9d8
add edi, 1
adc ecx, 0
cmp eax, ecx
setg dl
xchg esi, ebx
sete bl
xchg esi, ebx
cmp edi, ebx
xchg ebp, ebx
setb bl
xchg ebp, ebx
and ebp, esi
or ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x66d9d4
mov ebp, dword [esp + 0x34]
mov ebx, edi
mov eax, ecx
jmp 0x66d9d8
mov ebp, dword [esp + 0x34]
test eax, eax
sete al
setl cl
test ebx, ebx
setbe dl
and edx, eax
or ecx, edx
test cl, cl
je 0x66d9f2
mov ebx, 1
mov dword [esp + 0x30], ebx
lea eax, [0x6e9a40]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [esp + 0xfc], eax
mov dword [eax], 0
lea ecx, [0x96ef00]
mov dword [esp], ecx
call fcn.00472f50
lea eax, [0x6e9a00]
cmp dword [esp + 4], eax
jne 0x66da35
mov ecx, dword [esp + 8]
jmp 0x66da3a
mov ecx, 0
jne 0x66db0e
mov edx, dword [esp + 0x30]
cmp dword [ecx + 4], edx
jl 0x66db12
mov dword [esp + 0xe0], ecx
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
lea edx, [0x66e370]
mov dword [esp + 0x118], edx
lea edx, [0x96ef00]
mov dword [esp + 0x11c], edx
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], ecx
lea eax, [esp + 0x118]
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xac]
mov dword [esp], eax
call fcn.00437b00
test eax, eax
jne 0x66db02
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov eax, dword [eax]
mov ebx, dword [esp + 0xfc]
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edx
mov ecx, dword [0x995310]
test ecx, ecx
je 0x66dafb
call fcn.00468e70
mov dword [edi], eax
mov ecx, dword [ebx]
mov dword [edi + 4], ecx
mov dword [ebx], eax
jmp 0x66dbd7
call fcn.00438090
add esp, 0x128
ret
mov edx, dword [esp + 0x30]
lea eax, [0x6f4820]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.0044e560
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0xfc]
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
mov ecx, dword [0x995310]
test ecx, ecx
je 0x66db53
call fcn.00468e70
mov dword [edi], eax
mov ecx, dword [edx]
mov dword [edi + 4], ecx
mov dword [edx], eax
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0
lea eax, [0x66e320]
mov dword [esp + 0x108], eax
lea eax, [0x96ef00]
mov dword [esp + 0x10c], eax
lea eax, [0x6e9a00]
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], edx
lea eax, [esp + 0x108]
mov dword [esp + 0x94], eax
lea eax, [esp + 0x88]
mov dword [esp], eax
call fcn.00437b00
test eax, eax
jne 0x66dbf5
mov ebx, dword [esp + 0xfc]
mov eax, dword [esp + 0xf4]
test eax, eax
setne al
mov byte [esp + 0x2e], al
xor ecx, ecx
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x34]
xor esi, esi
jmp 0x66dc1b
call fcn.00438090
add esp, 0x128
ret
movzx eax, byte [esp + 0x2e]
mov ebx, dword [esp + 0xfc]
movzx ecx, byte [esp + 0x2d]
mov edx, edi
mov ebp, esi
movzx esi, byte [esp + 0x2c]
test cl, cl
jne 0x66de53
mov byte [esp + 0x2d], cl
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], edx
xchg esi, eax
mov byte [esp + 0x2c], al
xchg esi, eax
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 8]
mov ebp, dword [esp + 0x4c]
mov esi, dword [ebp + 0x14]
mov edi, dword [esp + 0xe4]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call esi
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
movzx ebx, byte [esp + 0x2f]
test bl, bl
je 0x66dd02
mov ebp, ecx
sar ebp, 0x1f
mov esi, dword [esp + 0x34]
sub esi, ecx
mov edi, dword [esp + 0x38]
sbb edi, ebp
test edi, edi
xchg ebp, ebx
sete bl
xchg ebp, ebx
test esi, esi
sete bl
and ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x66dcf9
test eax, eax
jne 0x66dcf9
lea eax, [0x6efb00]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0xe4]
mov dword [esp], edx
mov dword [esp + 8], 1
mov dword [esp + 0xc], 1
call ecx
mov eax, dword [esp + 0x10]
mov ecx, eax
sar eax, 0x1f
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
xor esi, esi
sub esi, ecx
mov edi, 0
sbb edi, eax
mov ecx, dword [esp + 0x44]
mov eax, edx
mov edx, ebx
test edi, edi
jge 0x66dd0a
jmp 0x66dde2
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], esi
test eax, eax
jne 0x66dd20
movzx ebx, byte [esp + 0x2d]
jmp 0x66ddb7
mov dword [esp + 0xd8], edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xf8]
mov dword [esp], eax
call fcn.00472830
mov eax, dword [esp + 0x12c]
mov ecx, dword [eax + 0xc4]
mov dword [esp + 0xf0], ecx
mov edx, dword [esp + 0xf8]
mov dword [esp], edx
call fcn.00472bb0
mov eax, dword [esp + 0xf0]
test eax, eax
jne 0x66de2d
mov eax, dword [esp + 0x48]
cmp dword [0x967010], eax
jne 0x66de0c
mov ecx, dword [0x967014]
mov dword [esp], eax
mov edx, dword [esp + 0xd8]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00404290
movzx eax, byte [esp + 0xc]
test al, al
je 0x66de08
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
xor eax, eax
xor edx, edx
mov ebx, 1
mov byte [esp + 0x2d], bl
mov ebp, dword [esp + 0xfc]
mov ebx, dword [ebp + 8]
cmp ebx, ecx
jb 0x66e2c2
mov ebp, dword [ebp]
jmp 0x66e124
test eax, eax
je 0x66dc01
jmp 0x66e29a
mov eax, dword [0x9674d8]
mov ecx, dword [0x9674dc]
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], ecx
call fcn.00438090
add esp, 0x128
ret
mov eax, dword [esp + 0x48]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x138], eax
call fcn.00438090
add esp, 0x128
ret
mov eax, dword [0x9674d0]
mov ecx, dword [0x9674d4]
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], ecx
call fcn.00438090
add esp, 0x128
ret
xchg esi, eax
test al, al
xchg esi, eax
jne 0x66e0ae
mov eax, dword [esp + 0xf8]
mov dword [esp], eax
call fcn.00472830
mov eax, dword [esp + 0x12c]
mov ecx, dword [eax + 0x78]
mov edx, dword [eax + 0x7c]
mov ebx, dword [esp + 0x130]
mov ebx, dword [ebx + 0x58]
mov dword [esp + 0xd0], ebx
mov dword [esp + 0x134], ecx
mov dword [esp + 0x138], edx
mov ecx, dword [esp + 0xf8]
mov dword [esp], ecx
call fcn.00472bb0
mov eax, dword [esp + 0x134]
test eax, eax
jne 0x66e0a2
mov eax, dword [esp + 0xdc]
lea ecx, [eax + 0xc0]
mov dword [esp + 0xf8], ecx
mov dword [esp], ecx
call fcn.00472830
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
lea eax, [0x66e2e0]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x104], eax
lea eax, [esp + 0x100]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x64]
mov dword [esp], eax
call fcn.00437b00
test eax, eax
jne 0x66e096
mov eax, dword [esp + 0xd0]
test eax, eax
je 0x66df31
mov ecx, dword [eax]
jmp 0x66df33
xor ecx, ecx
test ecx, ecx
jg 0x66df3f
xor ebp, ebp
xor esi, esi
xor ebx, ebx
jmp 0x66df80
mov ecx, dword [esp + 0xdc]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0066fa10
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], ecx
test edx, edx
jne 0x66e08a
test ebp, ebp
je 0x66dfd2
mov eax, dword [esp + 0x12c]
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0xdc]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov byte [esp + 8], 1
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], esi
call fcn.0066d6b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], ecx
jmp 0x66e040
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 0xcc]
mov edx, dword [esp + 0x12c]
mov edx, dword [edx + 0x14]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov byte [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
call fcn.00661b30
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], ecx
mov eax, dword [esp + 0xdc]
mov eax, dword [eax + 0xc8]
mov dword [esp], eax
call fcn.0063b960
mov eax, dword [esp + 4]
test eax, eax
je 0x66e07e
mov eax, dword [esp + 0x134]
test eax, eax
jne 0x66e07e
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], ecx
call fcn.00438090
add esp, 0x128
ret
call fcn.00438090
add esp, 0x128
ret
call fcn.00438090
add esp, 0x128
ret
call fcn.00438090
add esp, 0x128
ret
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 0
call fcn.00438090
add esp, 0x128
ret
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0xec]
mov dword [esp], edx
call fcn.00472bb0
mov eax, dword [esp + 0x12c]
movzx ecx, byte [esp + 0x2c]
mov edx, dword [esp + 0xe8]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0xd4]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x54]
test ecx, ecx
je 0x66ddd5
test eax, eax
jne 0x66ddd5
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xd4], ebp
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0066e3c0
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x66e278
mov eax, dword [esp + 8]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0xdc]
lea edx, [ecx + 0xc0]
mov dword [esp + 0xec], edx
mov dword [esp], edx
call fcn.00472830
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
cmp edx, ecx
jb 0x66e2bd
mov ebx, dword [esp + 0x3c]
cmp ebx, ecx
jb 0x66e2b4
mov eax, edx
sub edx, ecx
mov dword [esp + 0x40], edx
mov ebp, edx
neg edx
sar edx, 0x1f
and edx, ecx
sub ebx, ecx
mov dword [esp + 0x3c], ebx
mov esi, dword [esp + 0xd4]
add edx, esi
mov dword [esp + 0xd4], edx
movzx edi, byte [esp + 0x2d]
xchg edi, eax
test al, al
xchg edi, eax
je 0x66e1e8
test ebx, ebx
jne 0x66e1e8
movzx edi, byte [esp + 0x2e]
xor edi, 1
xchg edi, eax
mov byte [esp + 0x2c], al
xchg edi, eax
jmp 0x66e1f6
mov dword [esp + 0x5c], eax
xor eax, eax
mov byte [esp + 0x2c], al
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0xdc]
mov ebx, dword [edx + 0xcc]
mov ebp, dword [esp + 0x12c]
mov edi, dword [ebp + 0x14]
mov dword [esp], ebx
mov dword [esp + 4], edi
movzx ebx, byte [esp + 0x2c]
mov byte [esp + 8], bl
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
call fcn.00661b30
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
test eax, eax
jne 0x66e0d0
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 0xc8]
mov dword [esp], ecx
call fcn.0063b960
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
jmp 0x66e0d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], ecx
call fcn.00438090
add esp, 0x128
ret
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], edx
call fcn.00438090
add esp, 0x128
ret
mov eax, ecx
mov ecx, ebx
call fcn.00468f30
call fcn.00468f10
mov edx, ebx
call fcn.00468f10
nop
call fcn.00467a60
jmp fcn.0066d870